00001
00002
00003
00004
00005 #ifndef AVCODEC_H
00006 #define AVCODEC_H
00007
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif
00011
00012 #include "avutil.h"
00013 #include <sys/types.h>
00014
00015 #define AV_STRINGIFY(s) AV_TOSTRING(s)
00016 #define AV_TOSTRING(s) #s
00017
00018 #define LIBAVCODEC_VERSION_INT ((51<<16)+(29<<8)+0)
00019 #define LIBAVCODEC_VERSION 51.29.0
00020 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
00021
00022 #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
00023
00024 #define AV_NOPTS_VALUE INT64_C(0x8000000000000000)
00025 #define AV_TIME_BASE 1000000
00026 #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
00027
00028 enum CodecID {
00029 CODEC_ID_NONE,
00030 CODEC_ID_MPEG1VIDEO,
00031 CODEC_ID_MPEG2VIDEO,
00032 CODEC_ID_MPEG2VIDEO_XVMC,
00033 CODEC_ID_H261,
00034 CODEC_ID_H263,
00035 CODEC_ID_RV10,
00036 CODEC_ID_RV20,
00037 CODEC_ID_MJPEG,
00038 CODEC_ID_MJPEGB,
00039 CODEC_ID_LJPEG,
00040 CODEC_ID_SP5X,
00041 CODEC_ID_JPEGLS,
00042 CODEC_ID_MPEG4,
00043 CODEC_ID_RAWVIDEO,
00044 CODEC_ID_MSMPEG4V1,
00045 CODEC_ID_MSMPEG4V2,
00046 CODEC_ID_MSMPEG4V3,
00047 CODEC_ID_WMV1,
00048 CODEC_ID_WMV2,
00049 CODEC_ID_H263P,
00050 CODEC_ID_H263I,
00051 CODEC_ID_FLV1,
00052 CODEC_ID_SVQ1,
00053 CODEC_ID_SVQ3,
00054 CODEC_ID_DVVIDEO,
00055 CODEC_ID_HUFFYUV,
00056 CODEC_ID_CYUV,
00057 CODEC_ID_H264,
00058 CODEC_ID_INDEO3,
00059 CODEC_ID_VP3,
00060 CODEC_ID_THEORA,
00061 CODEC_ID_ASV1,
00062 CODEC_ID_ASV2,
00063 CODEC_ID_FFV1,
00064 CODEC_ID_4XM,
00065 CODEC_ID_VCR1,
00066 CODEC_ID_CLJR,
00067 CODEC_ID_MDEC,
00068 CODEC_ID_ROQ,
00069 CODEC_ID_INTERPLAY_VIDEO,
00070 CODEC_ID_XAN_WC3,
00071 CODEC_ID_XAN_WC4,
00072 CODEC_ID_RPZA,
00073 CODEC_ID_CINEPAK,
00074 CODEC_ID_WS_VQA,
00075 CODEC_ID_MSRLE,
00076 CODEC_ID_MSVIDEO1,
00077 CODEC_ID_IDCIN,
00078 CODEC_ID_8BPS,
00079 CODEC_ID_SMC,
00080 CODEC_ID_FLIC,
00081 CODEC_ID_TRUEMOTION1,
00082 CODEC_ID_VMDVIDEO,
00083 CODEC_ID_MSZH,
00084 CODEC_ID_ZLIB,
00085 CODEC_ID_QTRLE,
00086 CODEC_ID_SNOW,
00087 CODEC_ID_TSCC,
00088 CODEC_ID_ULTI,
00089 CODEC_ID_QDRAW,
00090 CODEC_ID_VIXL,
00091 CODEC_ID_QPEG,
00092 CODEC_ID_XVID,
00093 CODEC_ID_PNG,
00094 CODEC_ID_PPM,
00095 CODEC_ID_PBM,
00096 CODEC_ID_PGM,
00097 CODEC_ID_PGMYUV,
00098 CODEC_ID_PAM,
00099 CODEC_ID_FFVHUFF,
00100 CODEC_ID_RV30,
00101 CODEC_ID_RV40,
00102 CODEC_ID_VC1,
00103 CODEC_ID_WMV3,
00104 CODEC_ID_LOCO,
00105 CODEC_ID_WNV1,
00106 CODEC_ID_AASC,
00107 CODEC_ID_INDEO2,
00108 CODEC_ID_FRAPS,
00109 CODEC_ID_TRUEMOTION2,
00110 CODEC_ID_BMP,
00111 CODEC_ID_CSCD,
00112 CODEC_ID_MMVIDEO,
00113 CODEC_ID_ZMBV,
00114 CODEC_ID_AVS,
00115 CODEC_ID_SMACKVIDEO,
00116 CODEC_ID_NUV,
00117 CODEC_ID_KMVC,
00118 CODEC_ID_FLASHSV,
00119 CODEC_ID_CAVS,
00120 CODEC_ID_JPEG2000,
00121 CODEC_ID_VMNC,
00122 CODEC_ID_VP5,
00123 CODEC_ID_VP6,
00124 CODEC_ID_VP6F,
00125 CODEC_ID_TARGA,
00126 CODEC_ID_DSICINVIDEO,
00127 CODEC_ID_TIERTEXSEQVIDEO,
00128 CODEC_ID_TIFF,
00129 CODEC_ID_GIF,
00130 CODEC_ID_FFH264,
00131
00132
00133 CODEC_ID_PCM_S16LE= 0x10000,
00134 CODEC_ID_PCM_S16BE,
00135 CODEC_ID_PCM_U16LE,
00136 CODEC_ID_PCM_U16BE,
00137 CODEC_ID_PCM_S8,
00138 CODEC_ID_PCM_U8,
00139 CODEC_ID_PCM_MULAW,
00140 CODEC_ID_PCM_ALAW,
00141 CODEC_ID_PCM_S32LE,
00142 CODEC_ID_PCM_S32BE,
00143 CODEC_ID_PCM_U32LE,
00144 CODEC_ID_PCM_U32BE,
00145 CODEC_ID_PCM_S24LE,
00146 CODEC_ID_PCM_S24BE,
00147 CODEC_ID_PCM_U24LE,
00148 CODEC_ID_PCM_U24BE,
00149 CODEC_ID_PCM_S24DAUD,
00150
00151
00152 CODEC_ID_ADPCM_IMA_QT= 0x11000,
00153 CODEC_ID_ADPCM_IMA_WAV,
00154 CODEC_ID_ADPCM_IMA_DK3,
00155 CODEC_ID_ADPCM_IMA_DK4,
00156 CODEC_ID_ADPCM_IMA_WS,
00157 CODEC_ID_ADPCM_IMA_SMJPEG,
00158 CODEC_ID_ADPCM_MS,
00159 CODEC_ID_ADPCM_4XM,
00160 CODEC_ID_ADPCM_XA,
00161 CODEC_ID_ADPCM_ADX,
00162 CODEC_ID_ADPCM_EA,
00163 CODEC_ID_ADPCM_G726,
00164 CODEC_ID_ADPCM_CT,
00165 CODEC_ID_ADPCM_SWF,
00166 CODEC_ID_ADPCM_YAMAHA,
00167 CODEC_ID_ADPCM_SBPRO_4,
00168 CODEC_ID_ADPCM_SBPRO_3,
00169 CODEC_ID_ADPCM_SBPRO_2,
00170
00171
00172 CODEC_ID_AMR_NB= 0x12000,
00173 CODEC_ID_AMR_WB,
00174
00175
00176 CODEC_ID_RA_144= 0x13000,
00177 CODEC_ID_RA_288,
00178
00179
00180 CODEC_ID_ROQ_DPCM= 0x14000,
00181 CODEC_ID_INTERPLAY_DPCM,
00182 CODEC_ID_XAN_DPCM,
00183 CODEC_ID_SOL_DPCM,
00184
00185 CODEC_ID_MP2= 0x15000,
00186 CODEC_ID_MP3,
00187 CODEC_ID_AAC,
00188 #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
00189 CODEC_ID_MPEG4AAC,
00190 #endif
00191 CODEC_ID_AC3,
00192 CODEC_ID_DTS,
00193 CODEC_ID_VORBIS,
00194 CODEC_ID_DVAUDIO,
00195 CODEC_ID_WMAV1,
00196 CODEC_ID_WMAV2,
00197 CODEC_ID_MACE3,
00198 CODEC_ID_MACE6,
00199 CODEC_ID_VMDAUDIO,
00200 CODEC_ID_SONIC,
00201 CODEC_ID_SONIC_LS,
00202 CODEC_ID_FLAC,
00203 CODEC_ID_MP3ADU,
00204 CODEC_ID_MP3ON4,
00205 CODEC_ID_SHORTEN,
00206 CODEC_ID_ALAC,
00207 CODEC_ID_WESTWOOD_SND1,
00208 CODEC_ID_GSM,
00209 CODEC_ID_QDM2,
00210 CODEC_ID_COOK,
00211 CODEC_ID_TRUESPEECH,
00212 CODEC_ID_TTA,
00213 CODEC_ID_SMACKAUDIO,
00214 CODEC_ID_QCELP,
00215 CODEC_ID_WAVPACK,
00216 CODEC_ID_DSICINAUDIO,
00217 CODEC_ID_IMC,
00218 CODEC_ID_MUSEPACK7,
00219
00220
00221 CODEC_ID_DVD_SUBTITLE= 0x17000,
00222 CODEC_ID_DVB_SUBTITLE,
00223
00224 CODEC_ID_MPEG2TS= 0x20000,
00225 };
00226
00227 #define CODEC_ID_MP3LAME CODEC_ID_MP3
00228
00229 enum CodecType {
00230 CODEC_TYPE_UNKNOWN = -1,
00231 CODEC_TYPE_VIDEO,
00232 CODEC_TYPE_AUDIO,
00233 CODEC_TYPE_DATA,
00234 CODEC_TYPE_SUBTITLE,
00235 };
00236
00237 enum SampleFormat {
00238 SAMPLE_FMT_NONE = -1,
00239 SAMPLE_FMT_U8,
00240 SAMPLE_FMT_S16,
00241 SAMPLE_FMT_S24,
00242 SAMPLE_FMT_S32,
00243 SAMPLE_FMT_FLT,
00244 };
00245
00246 #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
00247
00248 #define FF_INPUT_BUFFER_PADDING_SIZE 8
00249
00250 #define FF_MIN_BUFFER_SIZE 16384
00251
00252 enum Motion_Est_ID {
00253 ME_ZERO = 1,
00254 ME_FULL,
00255 ME_LOG,
00256 ME_PHODS,
00257 ME_EPZS,
00258 ME_X1,
00259 ME_HEX,
00260 ME_UMH,
00261 ME_ITER,
00262 };
00263
00264 enum AVDiscard{
00265
00266 AVDISCARD_NONE =-16,
00267 AVDISCARD_DEFAULT= 0,
00268 AVDISCARD_NONREF = 8,
00269 AVDISCARD_BIDIR = 16,
00270 AVDISCARD_NONKEY = 32,
00271 AVDISCARD_ALL = 48,
00272 };
00273
00274 typedef struct RcOverride{
00275 int start_frame;
00276 int end_frame;
00277 int qscale;
00278 float quality_factor;
00279 } RcOverride;
00280
00281 #define FF_MAX_B_FRAMES 16
00282
00283 #define CODEC_FLAG_QSCALE 0x0002
00284 #define CODEC_FLAG_4MV 0x0004
00285 #define CODEC_FLAG_QPEL 0x0010
00286 #define CODEC_FLAG_GMC 0x0020
00287 #define CODEC_FLAG_MV0 0x0040
00288 #define CODEC_FLAG_PART 0x0080
00289
00290 #define CODEC_FLAG_INPUT_PRESERVED 0x0100
00291 #define CODEC_FLAG_PASS1 0x0200
00292 #define CODEC_FLAG_PASS2 0x0400
00293 #define CODEC_FLAG_EXTERN_HUFF 0x1000
00294 #define CODEC_FLAG_GRAY 0x2000
00295 #define CODEC_FLAG_EMU_EDGE 0x4000
00296 #define CODEC_FLAG_PSNR 0x8000
00297 #define CODEC_FLAG_TRUNCATED 0x00010000
00298 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000
00299 #define CODEC_FLAG_INTERLACED_DCT 0x00040000
00300 #define CODEC_FLAG_LOW_DELAY 0x00080000
00301 #define CODEC_FLAG_ALT_SCAN 0x00100000
00302 #define CODEC_FLAG_TRELLIS_QUANT 0x00200000
00303 #define CODEC_FLAG_GLOBAL_HEADER 0x00400000
00304 #define CODEC_FLAG_BITEXACT 0x00800000
00305
00306 #define CODEC_FLAG_H263P_AIC 0x01000000
00307 #define CODEC_FLAG_AC_PRED 0x01000000
00308 #define CODEC_FLAG_H263P_UMV 0x02000000
00309 #define CODEC_FLAG_CBP_RD 0x04000000
00310 #define CODEC_FLAG_QP_RD 0x08000000
00311 #define CODEC_FLAG_H263P_AIV 0x00000008
00312 #define CODEC_FLAG_OBMC 0x00000001
00313 #define CODEC_FLAG_LOOP_FILTER 0x00000800
00314 #define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000
00315 #define CODEC_FLAG_INTERLACED_ME 0x20000000
00316 #define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000
00317 #define CODEC_FLAG_CLOSED_GOP ((int)0x80000000)
00318 #define CODEC_FLAG2_FAST 0x00000001
00319 #define CODEC_FLAG2_STRICT_GOP 0x00000002
00320 #define CODEC_FLAG2_NO_OUTPUT 0x00000004
00321 #define CODEC_FLAG2_LOCAL_HEADER 0x00000008
00322 #define CODEC_FLAG2_BPYRAMID 0x00000010
00323 #define CODEC_FLAG2_WPRED 0x00000020
00324 #define CODEC_FLAG2_MIXED_REFS 0x00000040
00325 #define CODEC_FLAG2_8X8DCT 0x00000080
00326 #define CODEC_FLAG2_FASTPSKIP 0x00000100
00327 #define CODEC_FLAG2_AUD 0x00000200
00328 #define CODEC_FLAG2_BRDO 0x00000400
00329 #define CODEC_FLAG2_INTRA_VLC 0x00000800
00330 #define CODEC_FLAG2_MEMC_ONLY 0x00001000
00331 #define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000
00332 #define CODEC_FLAG2_SKIP_RD 0x00004000
00333
00334 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001
00335
00336 #define CODEC_CAP_DR1 0x0002
00337
00338 #define CODEC_CAP_PARSE_ONLY 0x0004
00339 #define CODEC_CAP_TRUNCATED 0x0008
00340
00341 #define CODEC_CAP_HWACCEL 0x0010
00342
00343 #define CODEC_CAP_DELAY 0x0020
00344
00345 #define CODEC_CAP_SMALL_LAST_FRAME 0x0040
00346
00347 #define MB_TYPE_INTRA4x4 0x0001
00348 #define MB_TYPE_INTRA16x16 0x0002
00349 #define MB_TYPE_INTRA_PCM 0x0004
00350 #define MB_TYPE_16x16 0x0008
00351 #define MB_TYPE_16x8 0x0010
00352 #define MB_TYPE_8x16 0x0020
00353 #define MB_TYPE_8x8 0x0040
00354 #define MB_TYPE_INTERLACED 0x0080
00355 #define MB_TYPE_DIRECT2 0x0100
00356 #define MB_TYPE_ACPRED 0x0200
00357 #define MB_TYPE_GMC 0x0400
00358 #define MB_TYPE_SKIP 0x0800
00359 #define MB_TYPE_P0L0 0x1000
00360 #define MB_TYPE_P1L0 0x2000
00361 #define MB_TYPE_P0L1 0x4000
00362 #define MB_TYPE_P1L1 0x8000
00363 #define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
00364 #define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
00365 #define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
00366 #define MB_TYPE_QUANT 0x00010000
00367 #define MB_TYPE_CBP 0x00020000
00368
00369 typedef struct AVPanScan{
00370
00371 int id;
00372
00373
00374 int width;
00375 int height;
00376
00377
00378 int16_t position[3][2];
00379 }AVPanScan;
00380
00381 #define FF_COMMON_FRAME \
00382 \
00383 uint8_t *data[4];\
00384 int linesize[4];\
00385 \
00386 uint8_t *base[4];\
00387 \
00388 int key_frame;\
00389 \
00390 \
00391 int pict_type;\
00392 \
00393 \
00394 int64_t pts;\
00395 \
00396 \
00397 int coded_picture_number;\
00398 \
00399 int display_picture_number;\
00400 \
00401 \
00402 int quality; \
00403 \
00404 \
00405 int age;\
00406 \
00407 \
00408 int reference;\
00409 \
00410 \
00411 int8_t *qscale_table;\
00412 \
00413 int qstride;\
00414 \
00415 \
00416 uint8_t *mbskip_table;\
00417 \
00418 \
00419 int16_t (*motion_val[2])[2];\
00420 \
00421 \
00422 uint32_t *mb_type;\
00423 \
00424 \
00425 uint8_t motion_subsample_log2;\
00426 \
00427 \
00428 void *opaque;\
00429 \
00430 \
00431 uint64_t error[4];\
00432 \
00433 \
00434 int type;\
00435 \
00436 \
00437 int repeat_pict;\
00438 \
00439 \
00440 int qscale_type;\
00441 \
00442 \
00443 int interlaced_frame;\
00444 \
00445 \
00446 int top_field_first;\
00447 \
00448 \
00449 AVPanScan *pan_scan;\
00450 \
00451 \
00452 int palette_has_changed;\
00453 \
00454 \
00455 int buffer_hints;\
00456 \
00457 \
00458 short *dct_coeff;\
00459 \
00460 \
00461 int8_t *ref_index[2];
00462
00463 #define FF_QSCALE_TYPE_MPEG1 0
00464 #define FF_QSCALE_TYPE_MPEG2 1
00465 #define FF_QSCALE_TYPE_H264 2
00466
00467 #define FF_BUFFER_TYPE_INTERNAL 1
00468 #define FF_BUFFER_TYPE_USER 2
00469 #define FF_BUFFER_TYPE_SHARED 4
00470 #define FF_BUFFER_TYPE_COPY 8
00471
00472 #define FF_I_TYPE 1
00473 #define FF_P_TYPE 2
00474 #define FF_B_TYPE 3
00475 #define FF_S_TYPE 4
00476 #define FF_SI_TYPE 5
00477 #define FF_SP_TYPE 6
00478
00479 #define FF_BUFFER_HINTS_VALID 0x01
00480 #define FF_BUFFER_HINTS_READABLE 0x02
00481 #define FF_BUFFER_HINTS_PRESERVE 0x04
00482 #define FF_BUFFER_HINTS_REUSABLE 0x08
00483
00484 typedef struct AVFrame {
00485 FF_COMMON_FRAME
00486 } AVFrame;
00487
00488 #define DEFAULT_FRAME_RATE_BASE 1001000
00489
00490 typedef struct AVCodecContext {
00491
00492 AVClass *av_class;
00493
00494 int bit_rate;
00495
00496
00497 int bit_rate_tolerance;
00498
00499
00500 int flags;
00501
00502
00503 int sub_id;
00504
00505
00506 int me_method;
00507
00508
00509 uint8_t *extradata;
00510 int extradata_size;
00511
00512
00513 AVRational time_base;
00514
00515
00516
00517 int width, height;
00518
00519 #define FF_ASPECT_EXTENDED 15
00520
00521
00522 int gop_size;
00523
00524
00525 enum PixelFormat pix_fmt;
00526
00527
00528 int rate_emu;
00529
00530
00531 void (*draw_horiz_band)(struct AVCodecContext *s,
00532 const AVFrame *src, int offset[4],
00533 int y, int type, int height);
00534
00535
00536 int sample_rate;
00537 int channels;
00538
00539
00540 enum SampleFormat sample_fmt;
00541
00542
00543
00544 int frame_size;
00545 int frame_number;
00546 int real_pict_num;
00547
00548
00549 int delay;
00550
00551
00552 float qcompress;
00553 float qblur;
00554
00555
00556 int qmin;
00557
00558
00559 int qmax;
00560
00561
00562 int max_qdiff;
00563
00564
00565 int max_b_frames;
00566
00567
00568 float b_quant_factor;
00569
00570
00571 int rc_strategy;
00572 #define FF_RC_STRATEGY_XVID 1
00573
00574 int b_frame_strategy;
00575
00576
00577 int hurry_up;
00578
00579 struct AVCodec *codec;
00580
00581 void *priv_data;
00582
00583
00584 int rtp_mode;
00585
00586 int rtp_payload_size;
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598
00599 void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
00600
00601
00602 int mv_bits;
00603 int header_bits;
00604 int i_tex_bits;
00605 int p_tex_bits;
00606 int i_count;
00607 int p_count;
00608 int skip_count;
00609 int misc_bits;
00610
00611
00612 int frame_bits;
00613
00614
00615 void *opaque;
00616
00617 char codec_name[32];
00618 enum CodecType codec_type;
00619 enum CodecID codec_id;
00620
00621
00622 unsigned int codec_tag;
00623
00624
00625 int workaround_bugs;
00626 #define FF_BUG_AUTODETECT 1
00627 #define FF_BUG_OLD_MSMPEG4 2
00628 #define FF_BUG_XVID_ILACE 4
00629 #define FF_BUG_UMP4 8
00630 #define FF_BUG_NO_PADDING 16
00631 #define FF_BUG_AMV 32
00632 #define FF_BUG_AC_VLC 0
00633 #define FF_BUG_QPEL_CHROMA 64
00634 #define FF_BUG_STD_QPEL 128
00635 #define FF_BUG_QPEL_CHROMA2 256
00636 #define FF_BUG_DIRECT_BLOCKSIZE 512
00637 #define FF_BUG_EDGE 1024
00638 #define FF_BUG_HPEL_CHROMA 2048
00639 #define FF_BUG_DC_CLIP 4096
00640 #define FF_BUG_MS 8192
00641
00642
00643 int luma_elim_threshold;
00644
00645
00646 int chroma_elim_threshold;
00647
00648
00649 int strict_std_compliance;
00650 #define FF_COMPLIANCE_VERY_STRICT 2
00651 #define FF_COMPLIANCE_STRICT 1
00652 #define FF_COMPLIANCE_NORMAL 0
00653 #define FF_COMPLIANCE_INOFFICIAL -1
00654 #define FF_COMPLIANCE_EXPERIMENTAL -2
00655
00656
00657 float b_quant_offset;
00658
00659
00660 int error_resilience;
00661 #define FF_ER_CAREFUL 1
00662 #define FF_ER_COMPLIANT 2
00663 #define FF_ER_AGGRESSIVE 3
00664 #define FF_ER_VERY_AGGRESSIVE 4
00665
00666
00667 int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);
00668
00669
00670 void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);
00671
00672
00673 int has_b_frames;
00674
00675
00676 int block_align;
00677
00678 int parse_only;
00679
00680
00681 int mpeg_quant;
00682
00683
00684 char *stats_out;
00685
00686
00687 char *stats_in;
00688
00689
00690 float rc_qsquish;
00691
00692 float rc_qmod_amp;
00693 int rc_qmod_freq;
00694
00695
00696 RcOverride *rc_override;
00697 int rc_override_count;
00698
00699
00700 char *rc_eq;
00701
00702
00703 int rc_max_rate;
00704
00705
00706 int rc_min_rate;
00707
00708
00709 int rc_buffer_size;
00710 float rc_buffer_aggressivity;
00711
00712
00713 float i_quant_factor;
00714
00715
00716 float i_quant_offset;
00717
00718
00719 float rc_initial_cplx;
00720
00721
00722 int dct_algo;
00723 #define FF_DCT_AUTO 0
00724 #define FF_DCT_FASTINT 1
00725 #define FF_DCT_INT 2
00726 #define FF_DCT_MMX 3
00727 #define FF_DCT_MLIB 4
00728 #define FF_DCT_ALTIVEC 5
00729 #define FF_DCT_FAAN 6
00730
00731
00732 float lumi_masking;
00733
00734
00735 float temporal_cplx_masking;
00736
00737
00738 float spatial_cplx_masking;
00739
00740
00741 float p_masking;
00742
00743
00744 float dark_masking;
00745
00746
00747 int unused;
00748
00749
00750 int idct_algo;
00751 #define FF_IDCT_AUTO 0
00752 #define FF_IDCT_INT 1
00753 #define FF_IDCT_SIMPLE 2
00754 #define FF_IDCT_SIMPLEMMX 3
00755 #define FF_IDCT_LIBMPEG2MMX 4
00756 #define FF_IDCT_PS2 5
00757 #define FF_IDCT_MLIB 6
00758 #define FF_IDCT_ARM 7
00759 #define FF_IDCT_ALTIVEC 8
00760 #define FF_IDCT_SH4 9
00761 #define FF_IDCT_SIMPLEARM 10
00762 #define FF_IDCT_H264 11
00763 #define FF_IDCT_VP3 12
00764 #define FF_IDCT_IPP 13
00765 #define FF_IDCT_XVIDMMX 14
00766 #define FF_IDCT_CAVS 15
00767 #define FF_IDCT_SIMPLEARMV5TE 16
00768 #define FF_IDCT_SIMPLEARMV6 17
00769
00770
00771 int slice_count;
00772
00773 int *slice_offset;
00774
00775
00776 int error_concealment;
00777 #define FF_EC_GUESS_MVS 1
00778 #define FF_EC_DEBLOCK 2
00779
00780
00781 unsigned dsp_mask;
00782 #define FF_MM_FORCE 0x80000000
00783
00784 #ifdef HAVE_MMX
00785 #define FF_MM_MMX 0x0001
00786 #define FF_MM_3DNOW 0x0004
00787 #define FF_MM_MMXEXT 0x0002
00788 #define FF_MM_SSE 0x0008
00789 #define FF_MM_SSE2 0x0010
00790 #define FF_MM_3DNOWEXT 0x0020
00791 #endif
00792 #ifdef HAVE_IWMMXT
00793 #define FF_MM_IWMMXT 0x0100
00794 #endif
00795
00796
00797 int bits_per_sample;
00798
00799
00800 int prediction_method;
00801 #define FF_PRED_LEFT 0
00802 #define FF_PRED_PLANE 1
00803 #define FF_PRED_MEDIAN 2
00804
00805
00806 AVRational sample_aspect_ratio;
00807
00808
00809 AVFrame *coded_frame;
00810
00811
00812 int debug;
00813 #define FF_DEBUG_PICT_INFO 1
00814 #define FF_DEBUG_RC 2
00815 #define FF_DEBUG_BITSTREAM 4
00816 #define FF_DEBUG_MB_TYPE 8
00817 #define FF_DEBUG_QP 16
00818 #define FF_DEBUG_MV 32
00819 #define FF_DEBUG_DCT_COEFF 0x00000040
00820 #define FF_DEBUG_SKIP 0x00000080
00821 #define FF_DEBUG_STARTCODE 0x00000100
00822 #define FF_DEBUG_PTS 0x00000200
00823 #define FF_DEBUG_ER 0x00000400
00824 #define FF_DEBUG_MMCO 0x00000800
00825 #define FF_DEBUG_BUGS 0x00001000
00826 #define FF_DEBUG_VIS_QP 0x00002000
00827 #define FF_DEBUG_VIS_MB_TYPE 0x00004000
00828
00829
00830 int debug_mv;
00831 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001
00832 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002
00833 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004
00834
00835
00836 uint64_t error[4];
00837
00838
00839 int mb_qmin;
00840
00841
00842 int mb_qmax;
00843
00844
00845 int me_cmp;
00846
00847 int me_sub_cmp;
00848
00849 int mb_cmp;
00850
00851 int ildct_cmp;
00852 #define FF_CMP_SAD 0
00853 #define FF_CMP_SSE 1
00854 #define FF_CMP_SATD 2
00855 #define FF_CMP_DCT 3
00856 #define FF_CMP_PSNR 4
00857 #define FF_CMP_BIT 5
00858 #define FF_CMP_RD 6
00859 #define FF_CMP_ZERO 7
00860 #define FF_CMP_VSAD 8
00861 #define FF_CMP_VSSE 9
00862 #define FF_CMP_NSSE 10
00863 #define FF_CMP_W53 11
00864 #define FF_CMP_W97 12
00865 #define FF_CMP_DCTMAX 13
00866 #define FF_CMP_DCT264 14
00867 #define FF_CMP_CHROMA 256
00868
00869
00870 int dia_size;
00871
00872
00873 int last_predictor_count;
00874
00875
00876 int pre_me;
00877
00878
00879 int me_pre_cmp;
00880
00881
00882 int pre_dia_size;
00883
00884
00885 int me_subpel_quality;
00886
00887
00888 enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt);
00889
00890
00891 int dtg_active_format;
00892 #define FF_DTG_AFD_SAME 8
00893 #define FF_DTG_AFD_4_3 9
00894 #define FF_DTG_AFD_16_9 10
00895 #define FF_DTG_AFD_14_9 11
00896 #define FF_DTG_AFD_4_3_SP_14_9 13
00897 #define FF_DTG_AFD_16_9_SP_14_9 14
00898 #define FF_DTG_AFD_SP_4_3 15
00899
00900
00901 int me_range;
00902
00903
00904 int intra_quant_bias;
00905 #define FF_DEFAULT_QUANT_BIAS 999999
00906
00907
00908 int inter_quant_bias;
00909
00910
00911 int color_table_id;
00912
00913
00914 int internal_buffer_count;
00915
00916
00917 void *internal_buffer;
00918
00919 #define FF_LAMBDA_SHIFT 7
00920 #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
00921 #define FF_QP2LAMBDA 118
00922 #define FF_LAMBDA_MAX (256*128-1)
00923
00924 #define FF_QUALITY_SCALE FF_LAMBDA_SCALE
00925
00926 int global_quality;
00927
00928 #define FF_CODER_TYPE_VLC 0
00929 #define FF_CODER_TYPE_AC 1
00930
00931 int coder_type;
00932
00933
00934 int context_model;
00935 #if 0
00936
00937 uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size);
00938 #endif
00939
00940
00941 int slice_flags;
00942 #define SLICE_FLAG_CODED_ORDER 0x0001
00943 #define SLICE_FLAG_ALLOW_FIELD 0x0002
00944 #define SLICE_FLAG_ALLOW_PLANE 0x0004
00945
00946
00947 int xvmc_acceleration;
00948
00949
00950 int mb_decision;
00951 #define FF_MB_DECISION_SIMPLE 0
00952 #define FF_MB_DECISION_BITS 1
00953 #define FF_MB_DECISION_RD 2
00954
00955
00956 uint16_t *intra_matrix;
00957
00958
00959 uint16_t *inter_matrix;
00960
00961
00962 unsigned int stream_codec_tag;
00963
00964
00965 int scenechange_threshold;
00966
00967
00968 int lmin;
00969
00970
00971 int lmax;
00972
00973
00974 struct AVPaletteControl *palctrl;
00975
00976
00977 int noise_reduction;
00978
00979
00980 int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic);
00981
00982
00983 int rc_initial_buffer_occupancy;
00984
00985
00986 int inter_threshold;
00987
00988
00989 int flags2;
00990
00991
00992 int error_rate;
00993
00994
00995 int antialias_algo;
00996 #define FF_AA_AUTO 0
00997 #define FF_AA_FASTINT 1
00998 #define FF_AA_INT 2
00999 #define FF_AA_FLOAT 3
01000
01001 int quantizer_noise_shaping;
01002
01003
01004 int thread_count;
01005
01006
01007 int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void **arg2, int *ret, int count);
01008
01009
01010 void *thread_opaque;
01011
01012
01013 int me_threshold;
01014
01015
01016 int mb_threshold;
01017
01018
01019 int intra_dc_precision;
01020
01021
01022 int nsse_weight;
01023
01024
01025 int skip_top;
01026
01027
01028 int skip_bottom;
01029
01030
01031 int profile;
01032 #define FF_PROFILE_UNKNOWN -99
01033
01034
01035 int level;
01036 #define FF_LEVEL_UNKNOWN -99
01037
01038
01039 int lowres;
01040
01041
01042 int coded_width, coded_height;
01043
01044
01045 int frame_skip_threshold;
01046
01047
01048 int frame_skip_factor;
01049
01050
01051 int frame_skip_exp;
01052
01053
01054 int frame_skip_cmp;
01055
01056
01057 float border_masking;
01058
01059
01060 int mb_lmin;
01061
01062
01063 int mb_lmax;
01064
01065
01066 int me_penalty_compensation;
01067
01068
01069 enum AVDiscard skip_loop_filter;
01070
01071
01072 enum AVDiscard skip_idct;
01073
01074
01075 enum AVDiscard skip_frame;
01076
01077
01078 int bidir_refine;
01079
01080
01081 int brd_scale;
01082
01083
01084 float crf;
01085
01086
01087 int cqp;
01088
01089
01090 int keyint_min;
01091
01092
01093 int refs;
01094
01095
01096 int chromaoffset;
01097
01098
01099 int bframebias;
01100
01101
01102 int trellis;
01103
01104
01105 float complexityblur;
01106
01107
01108 int deblockalpha;
01109
01110
01111 int deblockbeta;
01112
01113
01114 int partitions;
01115 #define X264_PART_I4X4 0x001
01116 #define X264_PART_I8X8 0x002
01117 #define X264_PART_P8X8 0x010
01118 #define X264_PART_P4X4 0x020
01119 #define X264_PART_B8X8 0x100
01120
01121
01122 int directpred;
01123
01124
01125 int cutoff;
01126
01127
01128 int scenechange_factor;
01129
01130
01131 int mv0_threshold;
01132
01133
01134 int b_sensitivity;
01135
01136
01137 int compression_level;
01138 #define FF_COMPRESSION_DEFAULT -1
01139
01140
01141 int use_lpc;
01142
01143
01144 int lpc_coeff_precision;
01145
01146
01147 int min_prediction_order;
01148
01149
01150 int max_prediction_order;
01151
01152
01153 int prediction_order_method;
01154
01155
01156 int min_partition_order;
01157
01158
01159 int max_partition_order;
01160
01161
01162 int64_t timecode_frame_start;
01163 } AVCodecContext;
01164
01165 typedef struct AVCodec {
01166 const char *name;
01167 enum CodecType type;
01168 enum CodecID id;
01169 int priv_data_size;
01170 int (*init)(AVCodecContext *);
01171 int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
01172 int (*close)(AVCodecContext *);
01173 int (*decode)(AVCodecContext *, void *outdata, int *outdata_size,
01174 uint8_t *buf, int buf_size);
01175 int capabilities;
01176 struct AVCodec *next;
01177 void (*flush)(AVCodecContext *);
01178 const AVRational *supported_framerates;
01179 const enum PixelFormat *pix_fmts;
01180 } AVCodec;
01181
01182 typedef struct AVPicture {
01183 uint8_t *data[4];
01184 int linesize[4];
01185 } AVPicture;
01186
01187 #define AVPALETTE_SIZE 1024
01188 #define AVPALETTE_COUNT 256
01189 typedef struct AVPaletteControl {
01190
01191
01192 int palette_changed;
01193
01194
01195 unsigned int palette[AVPALETTE_COUNT];
01196
01197 } AVPaletteControl attribute_deprecated;
01198
01199 typedef struct AVSubtitleRect {
01200 uint16_t x;
01201 uint16_t y;
01202 uint16_t w;
01203 uint16_t h;
01204 uint16_t nb_colors;
01205 int linesize;
01206 uint32_t *rgba_palette;
01207 uint8_t *bitmap;
01208 } AVSubtitleRect;
01209
01210 typedef struct AVSubtitle {
01211 uint16_t format;
01212 uint32_t start_display_time;
01213 uint32_t end_display_time;
01214 uint32_t num_rects;
01215 AVSubtitleRect *rects;
01216 } AVSubtitle;
01217
01218 extern AVCodec ac3_encoder;
01219 extern AVCodec amr_nb_encoder;
01220 extern AVCodec amr_wb_encoder;
01221 extern AVCodec asv1_encoder;
01222 extern AVCodec asv2_encoder;
01223 extern AVCodec dvvideo_encoder;
01224 extern AVCodec faac_encoder;
01225 extern AVCodec ffv1_encoder;
01226 extern AVCodec ffvhuff_encoder;
01227 extern AVCodec flac_encoder;
01228 extern AVCodec flashsv_encoder;
01229 extern AVCodec flv_encoder;
01230 extern AVCodec gif_encoder;
01231 extern AVCodec h261_encoder;
01232 extern AVCodec h263_encoder;
01233 extern AVCodec h263p_encoder;
01234 extern AVCodec h264_encoder;
01235 extern AVCodec huffyuv_encoder;
01236 extern AVCodec jpegls_encoder;
01237 extern AVCodec libgsm_encoder;
01238 extern AVCodec libtheora_encoder;
01239 extern AVCodec ljpeg_encoder;
01240 extern AVCodec mdec_encoder;
01241 extern AVCodec mjpeg_encoder;
01242 extern AVCodec mp2_encoder;
01243 extern AVCodec mp3lame_encoder;
01244 extern AVCodec mpeg1video_encoder;
01245 extern AVCodec mpeg2video_encoder;
01246 extern AVCodec mpeg4_encoder;
01247 extern AVCodec msmpeg4v1_encoder;
01248 extern AVCodec msmpeg4v2_encoder;
01249 extern AVCodec msmpeg4v3_encoder;
01250 extern AVCodec oggvorbis_encoder;
01251 extern AVCodec pam_encoder;
01252 extern AVCodec pbm_encoder;
01253 extern AVCodec pgm_encoder;
01254 extern AVCodec pgmyuv_encoder;
01255 extern AVCodec png_encoder;
01256 extern AVCodec ppm_encoder;
01257 extern AVCodec rv10_encoder;
01258 extern AVCodec rv20_encoder;
01259 extern AVCodec snow_encoder;
01260 extern AVCodec sonic_encoder;
01261 extern AVCodec sonic_ls_encoder;
01262 extern AVCodec svq1_encoder;
01263 extern AVCodec vcr1_encoder;
01264 extern AVCodec vorbis_encoder;
01265 extern AVCodec wmv1_encoder;
01266 extern AVCodec wmv2_encoder;
01267 extern AVCodec x264_encoder;
01268 extern AVCodec xvid_encoder;
01269 extern AVCodec zlib_encoder;
01270 extern AVCodec zmbv_encoder;
01271
01272 extern AVCodec aac_decoder;
01273 extern AVCodec aasc_decoder;
01274 extern AVCodec alac_decoder;
01275 extern AVCodec amr_nb_decoder;
01276 extern AVCodec amr_wb_decoder;
01277 extern AVCodec asv1_decoder;
01278 extern AVCodec asv2_decoder;
01279 extern AVCodec avs_decoder;
01280 extern AVCodec bmp_decoder;
01281 extern AVCodec cavs_decoder;
01282 extern AVCodec cinepak_decoder;
01283 extern AVCodec cljr_decoder;
01284 extern AVCodec cook_decoder;
01285 extern AVCodec cscd_decoder;
01286 extern AVCodec cyuv_decoder;
01287 extern AVCodec dsicinaudio_decoder;
01288 extern AVCodec dsicinvideo_decoder;
01289 extern AVCodec dvvideo_decoder;
01290 extern AVCodec eightbps_decoder;
01291 extern AVCodec ffv1_decoder;
01292 extern AVCodec ffvhuff_decoder;
01293 extern AVCodec flac_decoder;
01294 extern AVCodec flashsv_decoder;
01295 extern AVCodec flic_decoder;
01296 extern AVCodec flv_decoder;
01297 extern AVCodec fourxm_decoder;
01298 extern AVCodec fraps_decoder;
01299 extern AVCodec gif_decoder;
01300 extern AVCodec h261_decoder;
01301 extern AVCodec h263_decoder;
01302 extern AVCodec h263i_decoder;
01303 extern AVCodec h264_decoder;
01304 extern AVCodec huffyuv_decoder;
01305 extern AVCodec idcin_decoder;
01306 extern AVCodec imc_decoder;
01307 extern AVCodec indeo2_decoder;
01308 extern AVCodec indeo3_decoder;
01309 extern AVCodec interplay_dpcm_decoder;
01310 extern AVCodec interplay_video_decoder;
01311 extern AVCodec kmvc_decoder;
01312 extern AVCodec libgsm_decoder;
01313 extern AVCodec loco_decoder;
01314 extern AVCodec mace3_decoder;
01315 extern AVCodec mace6_decoder;
01316 extern AVCodec mdec_decoder;
01317 extern AVCodec mjpeg_decoder;
01318 extern AVCodec mjpegb_decoder;
01319 extern AVCodec mmvideo_decoder;
01320 extern AVCodec mp2_decoder;
01321 extern AVCodec mp3_decoder;
01322 extern AVCodec mp3adu_decoder;
01323 extern AVCodec mp3on4_decoder;
01324 extern AVCodec mpc7_decoder;
01325 extern AVCodec mpeg1video_decoder;
01326 extern AVCodec mpeg2video_decoder;
01327 extern AVCodec mpeg4_decoder;
01328 extern AVCodec mpeg4aac_decoder;
01329 extern AVCodec mpeg_xvmc_decoder;
01330 extern AVCodec mpegvideo_decoder;
01331 extern AVCodec msmpeg4v1_decoder;
01332 extern AVCodec msmpeg4v2_decoder;
01333 extern AVCodec msmpeg4v3_decoder;
01334 extern AVCodec msrle_decoder;
01335 extern AVCodec msvideo1_decoder;
01336 extern AVCodec mszh_decoder;
01337 extern AVCodec nuv_decoder;
01338 extern AVCodec oggvorbis_decoder;
01339 extern AVCodec png_decoder;
01340 extern AVCodec qdm2_decoder;
01341 extern AVCodec qdraw_decoder;
01342 extern AVCodec qpeg_decoder;
01343 extern AVCodec qtrle_decoder;
01344 extern AVCodec ra_144_decoder;
01345 extern AVCodec ra_288_decoder;
01346 extern AVCodec roq_decoder;
01347 extern AVCodec roq_dpcm_decoder;
01348 extern AVCodec rpza_decoder;
01349 extern AVCodec rv10_decoder;
01350 extern AVCodec rv20_decoder;
01351 extern AVCodec rv30_decoder;
01352 extern AVCodec rv40_decoder;
01353 extern AVCodec shorten_decoder;
01354 extern AVCodec smackaud_decoder;
01355 extern AVCodec smacker_decoder;
01356 extern AVCodec smc_decoder;
01357 extern AVCodec snow_decoder;
01358 extern AVCodec sol_dpcm_decoder;
01359 extern AVCodec sonic_decoder;
01360 extern AVCodec sp5x_decoder;
01361 extern AVCodec svq1_decoder;
01362 extern AVCodec svq3_decoder;
01363 extern AVCodec targa_decoder;
01364 extern AVCodec theora_decoder;
01365 extern AVCodec tiertexseqvideo_decoder;
01366 extern AVCodec tiff_decoder;
01367 extern AVCodec truemotion1_decoder;
01368 extern AVCodec truemotion2_decoder;
01369 extern AVCodec truespeech_decoder;
01370 extern AVCodec tscc_decoder;
01371 extern AVCodec tta_decoder;
01372 extern AVCodec ulti_decoder;
01373 extern AVCodec vc1_decoder;
01374 extern AVCodec vcr1_decoder;
01375 extern AVCodec vmdaudio_decoder;
01376 extern AVCodec vmdvideo_decoder;
01377 extern AVCodec vmnc_decoder;
01378 extern AVCodec vorbis_decoder;
01379 extern AVCodec vp3_decoder;
01380 extern AVCodec vp5_decoder;
01381 extern AVCodec vp6_decoder;
01382 extern AVCodec vp6f_decoder;
01383 extern AVCodec vqa_decoder;
01384 extern AVCodec wavpack_decoder;
01385 extern AVCodec wmav1_decoder;
01386 extern AVCodec wmav2_decoder;
01387 extern AVCodec wmv1_decoder;
01388 extern AVCodec wmv2_decoder;
01389 extern AVCodec wmv3_decoder;
01390 extern AVCodec wnv1_decoder;
01391 extern AVCodec ws_snd1_decoder;
01392 extern AVCodec xan_dpcm_decoder;
01393 extern AVCodec xan_wc3_decoder;
01394 extern AVCodec xl_decoder;
01395 extern AVCodec zlib_decoder;
01396 extern AVCodec zmbv_decoder;
01397
01398 #define PCM_CODEC(id, name) \
01399 extern AVCodec name ## _decoder; \
01400 extern AVCodec name ## _encoder
01401
01402 PCM_CODEC(CODEC_ID_PCM_ALAW, pcm_alaw);
01403 PCM_CODEC(CODEC_ID_PCM_MULAW, pcm_mulaw);
01404 PCM_CODEC(CODEC_ID_PCM_S8, pcm_s8);
01405 PCM_CODEC(CODEC_ID_PCM_S16BE, pcm_s16be);
01406 PCM_CODEC(CODEC_ID_PCM_S16LE, pcm_s16le);
01407 PCM_CODEC(CODEC_ID_PCM_S24BE, pcm_s24be);
01408 PCM_CODEC(CODEC_ID_PCM_S24DAUD, pcm_s24daud);
01409 PCM_CODEC(CODEC_ID_PCM_S24LE, pcm_s24le);
01410 PCM_CODEC(CODEC_ID_PCM_S32BE, pcm_s32be);
01411 PCM_CODEC(CODEC_ID_PCM_S32LE, pcm_s32le);
01412 PCM_CODEC(CODEC_ID_PCM_U8, pcm_u8);
01413 PCM_CODEC(CODEC_ID_PCM_U16BE, pcm_u16be);
01414 PCM_CODEC(CODEC_ID_PCM_U16LE, pcm_u16le);
01415 PCM_CODEC(CODEC_ID_PCM_U24BE, pcm_u24be);
01416 PCM_CODEC(CODEC_ID_PCM_U24LE, pcm_u24le);
01417 PCM_CODEC(CODEC_ID_PCM_U32BE, pcm_u32be);
01418 PCM_CODEC(CODEC_ID_PCM_U32LE, pcm_u32le);
01419
01420 PCM_CODEC(CODEC_ID_ADPCM_4XM, adpcm_4xm);
01421 PCM_CODEC(CODEC_ID_ADPCM_ADX, adpcm_adx);
01422 PCM_CODEC(CODEC_ID_ADPCM_CT, adpcm_ct);
01423 PCM_CODEC(CODEC_ID_ADPCM_EA, adpcm_ea);
01424 PCM_CODEC(CODEC_ID_ADPCM_G726, adpcm_g726);
01425 PCM_CODEC(CODEC_ID_ADPCM_IMA_DK3, adpcm_ima_dk3);
01426 PCM_CODEC(CODEC_ID_ADPCM_IMA_DK4, adpcm_ima_dk4);
01427 PCM_CODEC(CODEC_ID_ADPCM_IMA_QT, adpcm_ima_qt);
01428 PCM_CODEC(CODEC_ID_ADPCM_IMA_WAV, adpcm_ima_wav);
01429 PCM_CODEC(CODEC_ID_ADPCM_IMA_WS, adpcm_ima_ws);
01430 PCM_CODEC(CODEC_ID_ADPCM_MS, adpcm_ms);
01431 PCM_CODEC(CODEC_ID_ADPCM_SBPRO_2, adpcm_sbpro_2);
01432 PCM_CODEC(CODEC_ID_ADPCM_SBPRO_3, adpcm_sbpro_3);
01433 PCM_CODEC(CODEC_ID_ADPCM_SBPRO_4, adpcm_sbpro_4);
01434 PCM_CODEC(CODEC_ID_ADPCM_SMJPEG, adpcm_ima_smjpeg);
01435 PCM_CODEC(CODEC_ID_ADPCM_SWF, adpcm_swf);
01436 PCM_CODEC(CODEC_ID_ADPCM_XA, adpcm_xa);
01437 PCM_CODEC(CODEC_ID_ADPCM_YAMAHA, adpcm_yamaha);
01438
01439 #undef PCM_CODEC
01440
01441 extern AVCodec rawvideo_decoder;
01442 extern AVCodec rawvideo_encoder;
01443
01444 extern AVCodec ac3_decoder;
01445 extern AVCodec dts_decoder;
01446
01447 extern AVCodec dvbsub_decoder;
01448 extern AVCodec dvbsub_encoder;
01449 extern AVCodec dvdsub_decoder;
01450 extern AVCodec dvdsub_encoder;
01451
01452 struct ReSampleContext;
01453 struct AVResampleContext;
01454
01455 typedef struct ReSampleContext ReSampleContext;
01456
01457 ReSampleContext *audio_resample_init(int output_channels, int input_channels,
01458 int output_rate, int input_rate);
01459 int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);
01460 void audio_resample_close(ReSampleContext *s);
01461
01462 struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
01463 int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
01464 void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
01465 void av_resample_close(struct AVResampleContext *c);
01466
01467 struct ImgReSampleContext;
01468
01469 typedef struct ImgReSampleContext ImgReSampleContext;
01470
01471 ImgReSampleContext *img_resample_init(int output_width, int output_height,
01472 int input_width, int input_height);
01473
01474 ImgReSampleContext *img_resample_full_init(int owidth, int oheight,
01475 int iwidth, int iheight,
01476 int topBand, int bottomBand,
01477 int leftBand, int rightBand,
01478 int padtop, int padbottom,
01479 int padleft, int padright);
01480
01481 void img_resample(ImgReSampleContext *s,
01482 AVPicture *output, const AVPicture *input);
01483
01484 void img_resample_close(ImgReSampleContext *s);
01485
01486 int avpicture_alloc(AVPicture *picture, int pix_fmt, int width, int height);
01487
01488 void avpicture_free(AVPicture *picture);
01489
01490 int avpicture_fill(AVPicture *picture, uint8_t *ptr,
01491 int pix_fmt, int width, int height);
01492 int avpicture_layout(const AVPicture* src, int pix_fmt, int width, int height,
01493 unsigned char *dest, int dest_size);
01494 int avpicture_get_size(int pix_fmt, int width, int height);
01495 void avcodec_get_chroma_sub_sample(int pix_fmt, int *h_shift, int *v_shift);
01496 const char *avcodec_get_pix_fmt_name(int pix_fmt);
01497 void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
01498 enum PixelFormat avcodec_get_pix_fmt(const char* name);
01499 unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat p);
01500
01501 #define FF_LOSS_RESOLUTION 0x0001
01502 #define FF_LOSS_DEPTH 0x0002
01503 #define FF_LOSS_COLORSPACE 0x0004
01504 #define FF_LOSS_ALPHA 0x0008
01505 #define FF_LOSS_COLORQUANT 0x0010
01506 #define FF_LOSS_CHROMA 0x0020
01507
01508 int avcodec_get_pix_fmt_loss(int dst_pix_fmt, int src_pix_fmt,
01509 int has_alpha);
01510 int avcodec_find_best_pix_fmt(int pix_fmt_mask, int src_pix_fmt,
01511 int has_alpha, int *loss_ptr);
01512
01513 #define FF_ALPHA_TRANSP 0x0001
01514 #define FF_ALPHA_SEMI_TRANSP 0x0002
01515 int img_get_alpha_info(const AVPicture *src,
01516 int pix_fmt, int width, int height);
01517
01518 int img_convert(AVPicture *dst, int dst_pix_fmt,
01519 const AVPicture *src, int pix_fmt,
01520 int width, int height);
01521
01522 int avpicture_deinterlace(AVPicture *dst, const AVPicture *src,
01523 int pix_fmt, int width, int height);
01524
01525 extern AVCodec *first_avcodec;
01526
01527 unsigned avcodec_version(void);
01528
01529 unsigned avcodec_build(void);
01530 void avcodec_init(void);
01531
01532 void register_avcodec(AVCodec *format);
01533 AVCodec *avcodec_find_encoder(enum CodecID id);
01534 AVCodec *avcodec_find_encoder_by_name(const char *name);
01535 AVCodec *avcodec_find_decoder(enum CodecID id);
01536 AVCodec *avcodec_find_decoder_by_name(const char *name);
01537 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
01538
01539 void avcodec_get_context_defaults(AVCodecContext *s);
01540 AVCodecContext *avcodec_alloc_context(void);
01541 void avcodec_get_frame_defaults(AVFrame *pic);
01542 AVFrame *avcodec_alloc_frame(void);
01543
01544 int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
01545 void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
01546 int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame *pic);
01547 void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
01548 int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h);
01549 enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat * fmt);
01550
01551 int avcodec_thread_init(AVCodecContext *s, int thread_count);
01552 void avcodec_thread_free(AVCodecContext *s);
01553 int avcodec_thread_execute(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2),void **arg, int *ret, int count);
01554 int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void **arg, int *ret, int count);
01555
01556 int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
01557
01558 attribute_deprecated int avcodec_decode_audio(AVCodecContext *avctx, int16_t *samples,
01559 int *frame_size_ptr,
01560 uint8_t *buf, int buf_size);
01561
01562 int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
01563 int *frame_size_ptr,
01564 uint8_t *buf, int buf_size);
01565 int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
01566 int *got_picture_ptr,
01567 uint8_t *buf, int buf_size);
01568 int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
01569 int *got_sub_ptr,
01570 const uint8_t *buf, int buf_size);
01571 int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
01572 int *data_size_ptr,
01573 uint8_t *buf, int buf_size);
01574 int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size,
01575 const short *samples);
01576 int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
01577 const AVFrame *pict);
01578 int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
01579 const AVSubtitle *sub);
01580
01581 int avcodec_close(AVCodecContext *avctx);
01582
01583 void avcodec_register_all(void);
01584
01585 void avcodec_flush_buffers(AVCodecContext *avctx);
01586
01587 void avcodec_default_free_buffers(AVCodecContext *s);
01588
01589 char av_get_pict_type_char(int pict_type);
01590
01591 int av_get_bits_per_sample(enum CodecID codec_id);
01592
01593 typedef struct AVCodecParserContext {
01594 void *priv_data;
01595 struct AVCodecParser *parser;
01596 int64_t frame_offset;
01597 int64_t cur_offset;
01598 int64_t last_frame_offset;
01599
01600 int pict_type;
01601 int repeat_pict;
01602 int64_t pts;
01603 int64_t dts;
01604
01605
01606 int64_t last_pts;
01607 int64_t last_dts;
01608 int fetch_timestamp;
01609
01610 #define AV_PARSER_PTS_NB 4
01611 int cur_frame_start_index;
01612 int64_t cur_frame_offset[AV_PARSER_PTS_NB];
01613 int64_t cur_frame_pts[AV_PARSER_PTS_NB];
01614 int64_t cur_frame_dts[AV_PARSER_PTS_NB];
01615
01616 int flags;
01617 #define PARSER_FLAG_COMPLETE_FRAMES 0x0001
01618 } AVCodecParserContext;
01619
01620 typedef struct AVCodecParser {
01621 int codec_ids[5];
01622 int priv_data_size;
01623 int (*parser_init)(AVCodecParserContext *s);
01624 int (*parser_parse)(AVCodecParserContext *s,
01625 AVCodecContext *avctx,
01626 uint8_t **poutbuf, int *poutbuf_size,
01627 const uint8_t *buf, int buf_size);
01628 void (*parser_close)(AVCodecParserContext *s);
01629 int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
01630 struct AVCodecParser *next;
01631 } AVCodecParser;
01632
01633 extern AVCodecParser *av_first_parser;
01634
01635 void av_register_codec_parser(AVCodecParser *parser);
01636 AVCodecParserContext *av_parser_init(int codec_id);
01637 int av_parser_parse(AVCodecParserContext *s,
01638 AVCodecContext *avctx,
01639 uint8_t **poutbuf, int *poutbuf_size,
01640 const uint8_t *buf, int buf_size,
01641 int64_t pts, int64_t dts);
01642 int av_parser_change(AVCodecParserContext *s,
01643 AVCodecContext *avctx,
01644 uint8_t **poutbuf, int *poutbuf_size,
01645 const uint8_t *buf, int buf_size, int keyframe);
01646 void av_parser_close(AVCodecParserContext *s);
01647
01648 extern AVCodecParser aac_parser;
01649 extern AVCodecParser ac3_parser;
01650 extern AVCodecParser cavsvideo_parser;
01651 extern AVCodecParser dvbsub_parser;
01652 extern AVCodecParser dvdsub_parser;
01653 extern AVCodecParser h261_parser;
01654 extern AVCodecParser h263_parser;
01655 extern AVCodecParser h264_parser;
01656 extern AVCodecParser mjpeg_parser;
01657 extern AVCodecParser mpeg4video_parser;
01658 extern AVCodecParser mpegaudio_parser;
01659 extern AVCodecParser mpegvideo_parser;
01660 extern AVCodecParser pnm_parser;
01661
01662 typedef struct AVBitStreamFilterContext {
01663 void *priv_data;
01664 struct AVBitStreamFilter *filter;
01665 AVCodecParserContext *parser;
01666 struct AVBitStreamFilterContext *next;
01667 } AVBitStreamFilterContext;
01668
01669 typedef struct AVBitStreamFilter {
01670 const char *name;
01671 int priv_data_size;
01672 int (*filter)(AVBitStreamFilterContext *bsfc,
01673 AVCodecContext *avctx, const char *args,
01674 uint8_t **poutbuf, int *poutbuf_size,
01675 const uint8_t *buf, int buf_size, int keyframe);
01676 struct AVBitStreamFilter *next;
01677 } AVBitStreamFilter;
01678
01679 extern AVBitStreamFilter *av_first_bitstream_filter;
01680
01681 void av_register_bitstream_filter(AVBitStreamFilter *bsf);
01682 AVBitStreamFilterContext *av_bitstream_filter_init(const char *name);
01683 int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
01684 AVCodecContext *avctx, const char *args,
01685 uint8_t **poutbuf, int *poutbuf_size,
01686 const uint8_t *buf, int buf_size, int keyframe);
01687 void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
01688
01689 extern AVBitStreamFilter dump_extradata_bsf;
01690 extern AVBitStreamFilter remove_extradata_bsf;
01691 extern AVBitStreamFilter noise_bsf;
01692 extern AVBitStreamFilter mp3_header_compress_bsf;
01693 extern AVBitStreamFilter mp3_header_decompress_bsf;
01694 extern AVBitStreamFilter mjpega_dump_header_bsf;
01695
01696 void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size);
01697
01698 void av_free_static(void);
01699 void *av_mallocz_static(unsigned int size);
01700 void *av_realloc_static(void *ptr, unsigned int size);
01701
01702 void img_copy(AVPicture *dst, const AVPicture *src,
01703 int pix_fmt, int width, int height);
01704
01705 int img_crop(AVPicture *dst, const AVPicture *src,
01706 int pix_fmt, int top_band, int left_band);
01707
01708 int img_pad(AVPicture *dst, const AVPicture *src, int height, int width, int pix_fmt,
01709 int padtop, int padbottom, int padleft, int padright, int *color);
01710
01711 extern unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
01712
01713 #ifdef __cplusplus
01714 }
01715 #endif
01716
01717 #endif