00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef AVCODEC_AVCODEC_H
00022 #define AVCODEC_AVCODEC_H
00023
00029 #include <errno.h>
00030 #include "libavcore/samplefmt.h"
00031 #include "libavutil/avutil.h"
00032 #include "libavutil/cpu.h"
00033
00034 #define LIBAVCODEC_VERSION_MAJOR 52
00035 #define LIBAVCODEC_VERSION_MINOR 108
00036 #define LIBAVCODEC_VERSION_MICRO 0
00037
00038 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
00039 LIBAVCODEC_VERSION_MINOR, \
00040 LIBAVCODEC_VERSION_MICRO)
00041 #define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \
00042 LIBAVCODEC_VERSION_MINOR, \
00043 LIBAVCODEC_VERSION_MICRO)
00044 #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
00045
00046 #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
00047
00052 #ifndef FF_API_PALETTE_CONTROL
00053 #define FF_API_PALETTE_CONTROL (LIBAVCODEC_VERSION_MAJOR < 54)
00054 #endif
00055 #ifndef FF_API_MM_FLAGS
00056 #define FF_API_MM_FLAGS (LIBAVCODEC_VERSION_MAJOR < 53)
00057 #endif
00058 #ifndef FF_API_OPT_SHOW
00059 #define FF_API_OPT_SHOW (LIBAVCODEC_VERSION_MAJOR < 53)
00060 #endif
00061 #ifndef FF_API_AUDIO_OLD
00062 #define FF_API_AUDIO_OLD (LIBAVCODEC_VERSION_MAJOR < 53)
00063 #endif
00064 #ifndef FF_API_VIDEO_OLD
00065 #define FF_API_VIDEO_OLD (LIBAVCODEC_VERSION_MAJOR < 53)
00066 #endif
00067 #ifndef FF_API_SUBTITLE_OLD
00068 #define FF_API_SUBTITLE_OLD (LIBAVCODEC_VERSION_MAJOR < 53)
00069 #endif
00070 #ifndef FF_API_USE_LPC
00071 #define FF_API_USE_LPC (LIBAVCODEC_VERSION_MAJOR < 53)
00072 #endif
00073 #ifndef FF_API_SET_STRING_OLD
00074 #define FF_API_SET_STRING_OLD (LIBAVCODEC_VERSION_MAJOR < 53)
00075 #endif
00076 #ifndef FF_API_INOFFICIAL
00077 #define FF_API_INOFFICIAL (LIBAVCODEC_VERSION_MAJOR < 53)
00078 #endif
00079 #ifndef FF_API_OLD_SAMPLE_FMT
00080 #define FF_API_OLD_SAMPLE_FMT (LIBAVCODEC_VERSION_MAJOR < 53)
00081 #endif
00082 #ifndef FF_API_OLD_AUDIOCONVERT
00083 #define FF_API_OLD_AUDIOCONVERT (LIBAVCODEC_VERSION_MAJOR < 53)
00084 #endif
00085
00086 #if LIBAVCODEC_VERSION_MAJOR < 53
00087 # define FF_INTERNALC_MEM_TYPE unsigned int
00088 #else
00089 # define FF_INTERNALC_MEM_TYPE size_t
00090 #endif
00091
00104 enum CodecID {
00105 CODEC_ID_NONE,
00106
00107
00108 CODEC_ID_MPEG1VIDEO,
00109 CODEC_ID_MPEG2VIDEO,
00110 CODEC_ID_MPEG2VIDEO_XVMC,
00111 CODEC_ID_H261,
00112 CODEC_ID_H263,
00113 CODEC_ID_RV10,
00114 CODEC_ID_RV20,
00115 CODEC_ID_MJPEG,
00116 CODEC_ID_MJPEGB,
00117 CODEC_ID_LJPEG,
00118 CODEC_ID_SP5X,
00119 CODEC_ID_JPEGLS,
00120 CODEC_ID_MPEG4,
00121 CODEC_ID_RAWVIDEO,
00122 CODEC_ID_MSMPEG4V1,
00123 CODEC_ID_MSMPEG4V2,
00124 CODEC_ID_MSMPEG4V3,
00125 CODEC_ID_WMV1,
00126 CODEC_ID_WMV2,
00127 CODEC_ID_H263P,
00128 CODEC_ID_H263I,
00129 CODEC_ID_FLV1,
00130 CODEC_ID_SVQ1,
00131 CODEC_ID_SVQ3,
00132 CODEC_ID_DVVIDEO,
00133 CODEC_ID_HUFFYUV,
00134 CODEC_ID_CYUV,
00135 CODEC_ID_H264,
00136 CODEC_ID_INDEO3,
00137 CODEC_ID_VP3,
00138 CODEC_ID_THEORA,
00139 CODEC_ID_ASV1,
00140 CODEC_ID_ASV2,
00141 CODEC_ID_FFV1,
00142 CODEC_ID_4XM,
00143 CODEC_ID_VCR1,
00144 CODEC_ID_CLJR,
00145 CODEC_ID_MDEC,
00146 CODEC_ID_ROQ,
00147 CODEC_ID_INTERPLAY_VIDEO,
00148 CODEC_ID_XAN_WC3,
00149 CODEC_ID_XAN_WC4,
00150 CODEC_ID_RPZA,
00151 CODEC_ID_CINEPAK,
00152 CODEC_ID_WS_VQA,
00153 CODEC_ID_MSRLE,
00154 CODEC_ID_MSVIDEO1,
00155 CODEC_ID_IDCIN,
00156 CODEC_ID_8BPS,
00157 CODEC_ID_SMC,
00158 CODEC_ID_FLIC,
00159 CODEC_ID_TRUEMOTION1,
00160 CODEC_ID_VMDVIDEO,
00161 CODEC_ID_MSZH,
00162 CODEC_ID_ZLIB,
00163 CODEC_ID_QTRLE,
00164 CODEC_ID_SNOW,
00165 CODEC_ID_TSCC,
00166 CODEC_ID_ULTI,
00167 CODEC_ID_QDRAW,
00168 CODEC_ID_VIXL,
00169 CODEC_ID_QPEG,
00170 #if LIBAVCODEC_VERSION_MAJOR < 53
00171 CODEC_ID_XVID,
00172 #endif
00173 CODEC_ID_PNG,
00174 CODEC_ID_PPM,
00175 CODEC_ID_PBM,
00176 CODEC_ID_PGM,
00177 CODEC_ID_PGMYUV,
00178 CODEC_ID_PAM,
00179 CODEC_ID_FFVHUFF,
00180 CODEC_ID_RV30,
00181 CODEC_ID_RV40,
00182 CODEC_ID_VC1,
00183 CODEC_ID_WMV3,
00184 CODEC_ID_LOCO,
00185 CODEC_ID_WNV1,
00186 CODEC_ID_AASC,
00187 CODEC_ID_INDEO2,
00188 CODEC_ID_FRAPS,
00189 CODEC_ID_TRUEMOTION2,
00190 CODEC_ID_BMP,
00191 CODEC_ID_CSCD,
00192 CODEC_ID_MMVIDEO,
00193 CODEC_ID_ZMBV,
00194 CODEC_ID_AVS,
00195 CODEC_ID_SMACKVIDEO,
00196 CODEC_ID_NUV,
00197 CODEC_ID_KMVC,
00198 CODEC_ID_FLASHSV,
00199 CODEC_ID_CAVS,
00200 CODEC_ID_JPEG2000,
00201 CODEC_ID_VMNC,
00202 CODEC_ID_VP5,
00203 CODEC_ID_VP6,
00204 CODEC_ID_VP6F,
00205 CODEC_ID_TARGA,
00206 CODEC_ID_DSICINVIDEO,
00207 CODEC_ID_TIERTEXSEQVIDEO,
00208 CODEC_ID_TIFF,
00209 CODEC_ID_GIF,
00210 CODEC_ID_FFH264,
00211 CODEC_ID_DXA,
00212 CODEC_ID_DNXHD,
00213 CODEC_ID_THP,
00214 CODEC_ID_SGI,
00215 CODEC_ID_C93,
00216 CODEC_ID_BETHSOFTVID,
00217 CODEC_ID_PTX,
00218 CODEC_ID_TXD,
00219 CODEC_ID_VP6A,
00220 CODEC_ID_AMV,
00221 CODEC_ID_VB,
00222 CODEC_ID_PCX,
00223 CODEC_ID_SUNRAST,
00224 CODEC_ID_INDEO4,
00225 CODEC_ID_INDEO5,
00226 CODEC_ID_MIMIC,
00227 CODEC_ID_RL2,
00228 CODEC_ID_8SVX_EXP,
00229 CODEC_ID_8SVX_FIB,
00230 CODEC_ID_ESCAPE124,
00231 CODEC_ID_DIRAC,
00232 CODEC_ID_BFI,
00233 CODEC_ID_CMV,
00234 CODEC_ID_MOTIONPIXELS,
00235 CODEC_ID_TGV,
00236 CODEC_ID_TGQ,
00237 CODEC_ID_TQI,
00238 CODEC_ID_AURA,
00239 CODEC_ID_AURA2,
00240 CODEC_ID_V210X,
00241 CODEC_ID_TMV,
00242 CODEC_ID_V210,
00243 CODEC_ID_DPX,
00244 CODEC_ID_MAD,
00245 CODEC_ID_FRWU,
00246 CODEC_ID_FLASHSV2,
00247 CODEC_ID_CDGRAPHICS,
00248 CODEC_ID_R210,
00249 CODEC_ID_ANM,
00250 CODEC_ID_BINKVIDEO,
00251 CODEC_ID_IFF_ILBM,
00252 CODEC_ID_IFF_BYTERUN1,
00253 CODEC_ID_KGV1,
00254 CODEC_ID_YOP,
00255 CODEC_ID_VP8,
00256 CODEC_ID_PICTOR,
00257 CODEC_ID_ANSI,
00258 CODEC_ID_A64_MULTI,
00259 CODEC_ID_A64_MULTI5,
00260 CODEC_ID_R10K,
00261 CODEC_ID_MXPEG,
00262 CODEC_ID_LAGARITH,
00263
00264
00265 CODEC_ID_PCM_S16LE= 0x10000,
00266 CODEC_ID_PCM_S16BE,
00267 CODEC_ID_PCM_U16LE,
00268 CODEC_ID_PCM_U16BE,
00269 CODEC_ID_PCM_S8,
00270 CODEC_ID_PCM_U8,
00271 CODEC_ID_PCM_MULAW,
00272 CODEC_ID_PCM_ALAW,
00273 CODEC_ID_PCM_S32LE,
00274 CODEC_ID_PCM_S32BE,
00275 CODEC_ID_PCM_U32LE,
00276 CODEC_ID_PCM_U32BE,
00277 CODEC_ID_PCM_S24LE,
00278 CODEC_ID_PCM_S24BE,
00279 CODEC_ID_PCM_U24LE,
00280 CODEC_ID_PCM_U24BE,
00281 CODEC_ID_PCM_S24DAUD,
00282 CODEC_ID_PCM_ZORK,
00283 CODEC_ID_PCM_S16LE_PLANAR,
00284 CODEC_ID_PCM_DVD,
00285 CODEC_ID_PCM_F32BE,
00286 CODEC_ID_PCM_F32LE,
00287 CODEC_ID_PCM_F64BE,
00288 CODEC_ID_PCM_F64LE,
00289 CODEC_ID_PCM_BLURAY,
00290 CODEC_ID_PCM_LXF,
00291
00292
00293 CODEC_ID_ADPCM_IMA_QT= 0x11000,
00294 CODEC_ID_ADPCM_IMA_WAV,
00295 CODEC_ID_ADPCM_IMA_DK3,
00296 CODEC_ID_ADPCM_IMA_DK4,
00297 CODEC_ID_ADPCM_IMA_WS,
00298 CODEC_ID_ADPCM_IMA_SMJPEG,
00299 CODEC_ID_ADPCM_MS,
00300 CODEC_ID_ADPCM_4XM,
00301 CODEC_ID_ADPCM_XA,
00302 CODEC_ID_ADPCM_ADX,
00303 CODEC_ID_ADPCM_EA,
00304 CODEC_ID_ADPCM_G726,
00305 CODEC_ID_ADPCM_CT,
00306 CODEC_ID_ADPCM_SWF,
00307 CODEC_ID_ADPCM_YAMAHA,
00308 CODEC_ID_ADPCM_SBPRO_4,
00309 CODEC_ID_ADPCM_SBPRO_3,
00310 CODEC_ID_ADPCM_SBPRO_2,
00311 CODEC_ID_ADPCM_THP,
00312 CODEC_ID_ADPCM_IMA_AMV,
00313 CODEC_ID_ADPCM_EA_R1,
00314 CODEC_ID_ADPCM_EA_R3,
00315 CODEC_ID_ADPCM_EA_R2,
00316 CODEC_ID_ADPCM_IMA_EA_SEAD,
00317 CODEC_ID_ADPCM_IMA_EA_EACS,
00318 CODEC_ID_ADPCM_EA_XAS,
00319 CODEC_ID_ADPCM_EA_MAXIS_XA,
00320 CODEC_ID_ADPCM_IMA_ISS,
00321 CODEC_ID_ADPCM_G722,
00322
00323
00324 CODEC_ID_AMR_NB= 0x12000,
00325 CODEC_ID_AMR_WB,
00326
00327
00328 CODEC_ID_RA_144= 0x13000,
00329 CODEC_ID_RA_288,
00330
00331
00332 CODEC_ID_ROQ_DPCM= 0x14000,
00333 CODEC_ID_INTERPLAY_DPCM,
00334 CODEC_ID_XAN_DPCM,
00335 CODEC_ID_SOL_DPCM,
00336
00337
00338 CODEC_ID_MP2= 0x15000,
00339 CODEC_ID_MP3,
00340 CODEC_ID_AAC,
00341 CODEC_ID_AC3,
00342 CODEC_ID_DTS,
00343 CODEC_ID_VORBIS,
00344 CODEC_ID_DVAUDIO,
00345 CODEC_ID_WMAV1,
00346 CODEC_ID_WMAV2,
00347 CODEC_ID_MACE3,
00348 CODEC_ID_MACE6,
00349 CODEC_ID_VMDAUDIO,
00350 CODEC_ID_SONIC,
00351 CODEC_ID_SONIC_LS,
00352 CODEC_ID_FLAC,
00353 CODEC_ID_MP3ADU,
00354 CODEC_ID_MP3ON4,
00355 CODEC_ID_SHORTEN,
00356 CODEC_ID_ALAC,
00357 CODEC_ID_WESTWOOD_SND1,
00358 CODEC_ID_GSM,
00359 CODEC_ID_QDM2,
00360 CODEC_ID_COOK,
00361 CODEC_ID_TRUESPEECH,
00362 CODEC_ID_TTA,
00363 CODEC_ID_SMACKAUDIO,
00364 CODEC_ID_QCELP,
00365 CODEC_ID_WAVPACK,
00366 CODEC_ID_DSICINAUDIO,
00367 CODEC_ID_IMC,
00368 CODEC_ID_MUSEPACK7,
00369 CODEC_ID_MLP,
00370 CODEC_ID_GSM_MS,
00371 CODEC_ID_ATRAC3,
00372 CODEC_ID_VOXWARE,
00373 CODEC_ID_APE,
00374 CODEC_ID_NELLYMOSER,
00375 CODEC_ID_MUSEPACK8,
00376 CODEC_ID_SPEEX,
00377 CODEC_ID_WMAVOICE,
00378 CODEC_ID_WMAPRO,
00379 CODEC_ID_WMALOSSLESS,
00380 CODEC_ID_ATRAC3P,
00381 CODEC_ID_EAC3,
00382 CODEC_ID_SIPR,
00383 CODEC_ID_MP1,
00384 CODEC_ID_TWINVQ,
00385 CODEC_ID_TRUEHD,
00386 CODEC_ID_MP4ALS,
00387 CODEC_ID_ATRAC1,
00388 CODEC_ID_BINKAUDIO_RDFT,
00389 CODEC_ID_BINKAUDIO_DCT,
00390 CODEC_ID_AAC_LATM,
00391
00392
00393 CODEC_ID_DVD_SUBTITLE= 0x17000,
00394 CODEC_ID_DVB_SUBTITLE,
00395 CODEC_ID_TEXT,
00396 CODEC_ID_XSUB,
00397 CODEC_ID_SSA,
00398 CODEC_ID_MOV_TEXT,
00399 CODEC_ID_HDMV_PGS_SUBTITLE,
00400 CODEC_ID_DVB_TELETEXT,
00401 CODEC_ID_SRT,
00402
00403
00404 CODEC_ID_TTF= 0x18000,
00405
00406 CODEC_ID_PROBE= 0x19000,
00407
00408 CODEC_ID_MPEG2TS= 0x20000,
00410 CODEC_ID_FFMETADATA=0x21000,
00411 };
00412
00413 #if LIBAVCODEC_VERSION_MAJOR < 53
00414 #define CodecType AVMediaType
00415
00416 #define CODEC_TYPE_UNKNOWN AVMEDIA_TYPE_UNKNOWN
00417 #define CODEC_TYPE_VIDEO AVMEDIA_TYPE_VIDEO
00418 #define CODEC_TYPE_AUDIO AVMEDIA_TYPE_AUDIO
00419 #define CODEC_TYPE_DATA AVMEDIA_TYPE_DATA
00420 #define CODEC_TYPE_SUBTITLE AVMEDIA_TYPE_SUBTITLE
00421 #define CODEC_TYPE_ATTACHMENT AVMEDIA_TYPE_ATTACHMENT
00422 #define CODEC_TYPE_NB AVMEDIA_TYPE_NB
00423 #endif
00424
00425 #if FF_API_OLD_SAMPLE_FMT
00426 #define SampleFormat AVSampleFormat
00427
00428 #define SAMPLE_FMT_NONE AV_SAMPLE_FMT_NONE
00429 #define SAMPLE_FMT_U8 AV_SAMPLE_FMT_U8
00430 #define SAMPLE_FMT_S16 AV_SAMPLE_FMT_S16
00431 #define SAMPLE_FMT_S32 AV_SAMPLE_FMT_S32
00432 #define SAMPLE_FMT_FLT AV_SAMPLE_FMT_FLT
00433 #define SAMPLE_FMT_DBL AV_SAMPLE_FMT_DBL
00434 #define SAMPLE_FMT_NB AV_SAMPLE_FMT_NB
00435 #endif
00436
00437 #if FF_API_OLD_AUDIOCONVERT
00438 #include "libavcore/audioconvert.h"
00439
00440
00441 #define CH_FRONT_LEFT AV_CH_FRONT_LEFT
00442 #define CH_FRONT_RIGHT AV_CH_FRONT_RIGHT
00443 #define CH_FRONT_CENTER AV_CH_FRONT_CENTER
00444 #define CH_LOW_FREQUENCY AV_CH_LOW_FREQUENCY
00445 #define CH_BACK_LEFT AV_CH_BACK_LEFT
00446 #define CH_BACK_RIGHT AV_CH_BACK_RIGHT
00447 #define CH_FRONT_LEFT_OF_CENTER AV_CH_FRONT_LEFT_OF_CENTER
00448 #define CH_FRONT_RIGHT_OF_CENTER AV_CH_FRONT_RIGHT_OF_CENTER
00449 #define CH_BACK_CENTER AV_CH_BACK_CENTER
00450 #define CH_SIDE_LEFT AV_CH_SIDE_LEFT
00451 #define CH_SIDE_RIGHT AV_CH_SIDE_RIGHT
00452 #define CH_TOP_CENTER AV_CH_TOP_CENTER
00453 #define CH_TOP_FRONT_LEFT AV_CH_TOP_FRONT_LEFT
00454 #define CH_TOP_FRONT_CENTER AV_CH_TOP_FRONT_CENTER
00455 #define CH_TOP_FRONT_RIGHT AV_CH_TOP_FRONT_RIGHT
00456 #define CH_TOP_BACK_LEFT AV_CH_TOP_BACK_LEFT
00457 #define CH_TOP_BACK_CENTER AV_CH_TOP_BACK_CENTER
00458 #define CH_TOP_BACK_RIGHT AV_CH_TOP_BACK_RIGHT
00459 #define CH_STEREO_LEFT AV_CH_STEREO_LEFT
00460 #define CH_STEREO_RIGHT AV_CH_STEREO_RIGHT
00461
00465 #define CH_LAYOUT_NATIVE AV_CH_LAYOUT_NATIVE
00466
00467
00468 #define CH_LAYOUT_MONO AV_CH_LAYOUT_MONO
00469 #define CH_LAYOUT_STEREO AV_CH_LAYOUT_STEREO
00470 #define CH_LAYOUT_2_1 AV_CH_LAYOUT_2_1
00471 #define CH_LAYOUT_SURROUND AV_CH_LAYOUT_SURROUND
00472 #define CH_LAYOUT_4POINT0 AV_CH_LAYOUT_4POINT0
00473 #define CH_LAYOUT_2_2 AV_CH_LAYOUT_2_2
00474 #define CH_LAYOUT_QUAD AV_CH_LAYOUT_QUAD
00475 #define CH_LAYOUT_5POINT0 AV_CH_LAYOUT_5POINT0
00476 #define CH_LAYOUT_5POINT1 AV_CH_LAYOUT_5POINT1
00477 #define CH_LAYOUT_5POINT0_BACK AV_CH_LAYOUT_5POINT0_BACK
00478 #define CH_LAYOUT_5POINT1_BACK AV_CH_LAYOUT_5POINT1_BACK
00479 #define CH_LAYOUT_7POINT0 AV_CH_LAYOUT_7POINT0
00480 #define CH_LAYOUT_7POINT1 AV_CH_LAYOUT_7POINT1
00481 #define CH_LAYOUT_7POINT1_WIDE AV_CH_LAYOUT_7POINT1_WIDE
00482 #define CH_LAYOUT_STEREO_DOWNMIX AV_CH_LAYOUT_STEREO_DOWNMIX
00483 #endif
00484
00485
00486 #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio
00487
00495 #define FF_INPUT_BUFFER_PADDING_SIZE 8
00496
00501 #define FF_MIN_BUFFER_SIZE 16384
00502
00503
00507 enum Motion_Est_ID {
00508 ME_ZERO = 1,
00509 ME_FULL,
00510 ME_LOG,
00511 ME_PHODS,
00512 ME_EPZS,
00513 ME_X1,
00514 ME_HEX,
00515 ME_UMH,
00516 ME_ITER,
00517 ME_TESA,
00518 };
00519
00520 enum AVDiscard{
00521
00522
00523 AVDISCARD_NONE =-16,
00524 AVDISCARD_DEFAULT= 0,
00525 AVDISCARD_NONREF = 8,
00526 AVDISCARD_BIDIR = 16,
00527 AVDISCARD_NONKEY = 32,
00528 AVDISCARD_ALL = 48,
00529 };
00530
00531 enum AVColorPrimaries{
00532 AVCOL_PRI_BT709 =1,
00533 AVCOL_PRI_UNSPECIFIED=2,
00534 AVCOL_PRI_BT470M =4,
00535 AVCOL_PRI_BT470BG =5,
00536 AVCOL_PRI_SMPTE170M =6,
00537 AVCOL_PRI_SMPTE240M =7,
00538 AVCOL_PRI_FILM =8,
00539 AVCOL_PRI_NB ,
00540 };
00541
00542 enum AVColorTransferCharacteristic{
00543 AVCOL_TRC_BT709 =1,
00544 AVCOL_TRC_UNSPECIFIED=2,
00545 AVCOL_TRC_GAMMA22 =4,
00546 AVCOL_TRC_GAMMA28 =5,
00547 AVCOL_TRC_NB ,
00548 };
00549
00550 enum AVColorSpace{
00551 AVCOL_SPC_RGB =0,
00552 AVCOL_SPC_BT709 =1,
00553 AVCOL_SPC_UNSPECIFIED=2,
00554 AVCOL_SPC_FCC =4,
00555 AVCOL_SPC_BT470BG =5,
00556 AVCOL_SPC_SMPTE170M =6,
00557 AVCOL_SPC_SMPTE240M =7,
00558 AVCOL_SPC_NB ,
00559 };
00560
00561 enum AVColorRange{
00562 AVCOL_RANGE_UNSPECIFIED=0,
00563 AVCOL_RANGE_MPEG =1,
00564 AVCOL_RANGE_JPEG =2,
00565 AVCOL_RANGE_NB ,
00566 };
00567
00573 enum AVChromaLocation{
00574 AVCHROMA_LOC_UNSPECIFIED=0,
00575 AVCHROMA_LOC_LEFT =1,
00576 AVCHROMA_LOC_CENTER =2,
00577 AVCHROMA_LOC_TOPLEFT =3,
00578 AVCHROMA_LOC_TOP =4,
00579 AVCHROMA_LOC_BOTTOMLEFT =5,
00580 AVCHROMA_LOC_BOTTOM =6,
00581 AVCHROMA_LOC_NB ,
00582 };
00583
00587 enum AVLPCType {
00588 AV_LPC_TYPE_DEFAULT = -1,
00589 AV_LPC_TYPE_NONE = 0,
00590 AV_LPC_TYPE_FIXED = 1,
00591 AV_LPC_TYPE_LEVINSON = 2,
00592 AV_LPC_TYPE_CHOLESKY = 3,
00593 AV_LPC_TYPE_NB ,
00594 };
00595
00596 typedef struct RcOverride{
00597 int start_frame;
00598 int end_frame;
00599 int qscale;
00600 float quality_factor;
00601 } RcOverride;
00602
00603 #define FF_MAX_B_FRAMES 16
00604
00605
00606
00607
00608
00609
00610 #define CODEC_FLAG_QSCALE 0x0002
00611 #define CODEC_FLAG_4MV 0x0004
00612 #define CODEC_FLAG_QPEL 0x0010
00613 #define CODEC_FLAG_GMC 0x0020
00614 #define CODEC_FLAG_MV0 0x0040
00615 #define CODEC_FLAG_PART 0x0080
00616
00621 #define CODEC_FLAG_INPUT_PRESERVED 0x0100
00622 #define CODEC_FLAG_PASS1 0x0200
00623 #define CODEC_FLAG_PASS2 0x0400
00624 #define CODEC_FLAG_EXTERN_HUFF 0x1000
00625 #define CODEC_FLAG_GRAY 0x2000
00626 #define CODEC_FLAG_EMU_EDGE 0x4000
00627 #define CODEC_FLAG_PSNR 0x8000
00628 #define CODEC_FLAG_TRUNCATED 0x00010000
00630 #define CODEC_FLAG_NORMALIZE_AQP 0x00020000
00631 #define CODEC_FLAG_INTERLACED_DCT 0x00040000
00632 #define CODEC_FLAG_LOW_DELAY 0x00080000
00633 #define CODEC_FLAG_ALT_SCAN 0x00100000
00634 #define CODEC_FLAG_GLOBAL_HEADER 0x00400000
00635 #define CODEC_FLAG_BITEXACT 0x00800000
00636
00637 #define CODEC_FLAG_AC_PRED 0x01000000
00638 #define CODEC_FLAG_H263P_UMV 0x02000000
00639 #define CODEC_FLAG_CBP_RD 0x04000000
00640 #define CODEC_FLAG_QP_RD 0x08000000
00641 #define CODEC_FLAG_H263P_AIV 0x00000008
00642 #define CODEC_FLAG_OBMC 0x00000001
00643 #define CODEC_FLAG_LOOP_FILTER 0x00000800
00644 #define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000
00645 #define CODEC_FLAG_INTERLACED_ME 0x20000000
00646 #define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000
00647 #define CODEC_FLAG_CLOSED_GOP 0x80000000
00648 #define CODEC_FLAG2_FAST 0x00000001
00649 #define CODEC_FLAG2_STRICT_GOP 0x00000002
00650 #define CODEC_FLAG2_NO_OUTPUT 0x00000004
00651 #define CODEC_FLAG2_LOCAL_HEADER 0x00000008
00652 #define CODEC_FLAG2_BPYRAMID 0x00000010
00653 #define CODEC_FLAG2_WPRED 0x00000020
00654 #define CODEC_FLAG2_MIXED_REFS 0x00000040
00655 #define CODEC_FLAG2_8X8DCT 0x00000080
00656 #define CODEC_FLAG2_FASTPSKIP 0x00000100
00657 #define CODEC_FLAG2_AUD 0x00000200
00658 #define CODEC_FLAG2_BRDO 0x00000400
00659 #define CODEC_FLAG2_INTRA_VLC 0x00000800
00660 #define CODEC_FLAG2_MEMC_ONLY 0x00001000
00661 #define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000
00662 #define CODEC_FLAG2_SKIP_RD 0x00004000
00663 #define CODEC_FLAG2_CHUNKS 0x00008000
00664 #define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000
00665 #define CODEC_FLAG2_BIT_RESERVOIR 0x00020000
00666 #define CODEC_FLAG2_MBTREE 0x00040000
00667 #define CODEC_FLAG2_PSY 0x00080000
00668 #define CODEC_FLAG2_SSIM 0x00100000
00669 #define CODEC_FLAG2_INTRA_REFRESH 0x00200000
00670
00671
00672
00673
00674
00675
00676
00677
00678 #define CODEC_CAP_DRAW_HORIZ_BAND 0x0001
00679
00684 #define CODEC_CAP_DR1 0x0002
00685
00686 #define CODEC_CAP_PARSE_ONLY 0x0004
00687 #define CODEC_CAP_TRUNCATED 0x0008
00688
00689 #define CODEC_CAP_HWACCEL 0x0010
00690
00694 #define CODEC_CAP_DELAY 0x0020
00695
00699 #define CODEC_CAP_SMALL_LAST_FRAME 0x0040
00700
00703 #define CODEC_CAP_HWACCEL_VDPAU 0x0080
00704
00715 #define CODEC_CAP_SUBFRAMES 0x0100
00716
00720 #define CODEC_CAP_EXPERIMENTAL 0x0200
00721
00724 #define CODEC_CAP_CHANNEL_CONF 0x0400
00725
00728 #define CODEC_CAP_NEG_LINESIZES 0x0800
00729
00730
00731 #define MB_TYPE_INTRA4x4 0x0001
00732 #define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
00733 #define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific
00734 #define MB_TYPE_16x16 0x0008
00735 #define MB_TYPE_16x8 0x0010
00736 #define MB_TYPE_8x16 0x0020
00737 #define MB_TYPE_8x8 0x0040
00738 #define MB_TYPE_INTERLACED 0x0080
00739 #define MB_TYPE_DIRECT2 0x0100 //FIXME
00740 #define MB_TYPE_ACPRED 0x0200
00741 #define MB_TYPE_GMC 0x0400
00742 #define MB_TYPE_SKIP 0x0800
00743 #define MB_TYPE_P0L0 0x1000
00744 #define MB_TYPE_P1L0 0x2000
00745 #define MB_TYPE_P0L1 0x4000
00746 #define MB_TYPE_P1L1 0x8000
00747 #define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0)
00748 #define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1)
00749 #define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1)
00750 #define MB_TYPE_QUANT 0x00010000
00751 #define MB_TYPE_CBP 0x00020000
00752
00753
00759 typedef struct AVPanScan{
00765 int id;
00766
00772 int width;
00773 int height;
00774
00780 int16_t position[3][2];
00781 }AVPanScan;
00782
00783 #define FF_COMMON_FRAME \
00784 \
00790 uint8_t *data[4];\
00791 int linesize[4];\
00792 \
00798 uint8_t *base[4];\
00799 \
00804 int key_frame;\
00805 \
00806 \
00811 int pict_type;\
00812 \
00813 \
00819 int64_t pts;\
00820 \
00821 \
00826 int coded_picture_number;\
00827 \
00832 int display_picture_number;\
00833 \
00834 \
00839 int quality; \
00840 \
00841 \
00847 int age;\
00848 \
00849 \
00857 int reference;\
00858 \
00859 \
00864 int8_t *qscale_table;\
00865 \
00870 int qstride;\
00871 \
00872 \
00878 uint8_t *mbskip_table;\
00879 \
00880 \
00892 int16_t (*motion_val[2])[2];\
00893 \
00894 \
00900 uint32_t *mb_type;\
00901 \
00902 \
00908 uint8_t motion_subsample_log2;\
00909 \
00910 \
00915 void *opaque;\
00916 \
00917 \
00922 uint64_t error[4];\
00923 \
00924 \
00930 int type;\
00931 \
00932 \
00938 int repeat_pict;\
00939 \
00940 \
00943 int qscale_type;\
00944 \
00945 \
00950 int interlaced_frame;\
00951 \
00952 \
00957 int top_field_first;\
00958 \
00959 \
00964 AVPanScan *pan_scan;\
00965 \
00966 \
00971 int palette_has_changed;\
00972 \
00973 \
00978 int buffer_hints;\
00979 \
00980 \
00985 short *dct_coeff;\
00986 \
00987 \
00993 int8_t *ref_index[2];\
00994 \
00995 \
01006 int64_t reordered_opaque;\
01007 \
01008 \
01013 void *hwaccel_picture_private;\
01014 \
01015 \
01020 int64_t pkt_pts;\
01021 \
01022 \
01027 int64_t pkt_dts;\
01028
01029
01030 #define FF_QSCALE_TYPE_MPEG1 0
01031 #define FF_QSCALE_TYPE_MPEG2 1
01032 #define FF_QSCALE_TYPE_H264 2
01033 #define FF_QSCALE_TYPE_VP56 3
01034
01035 #define FF_BUFFER_TYPE_INTERNAL 1
01036 #define FF_BUFFER_TYPE_USER 2
01037 #define FF_BUFFER_TYPE_SHARED 4
01038 #define FF_BUFFER_TYPE_COPY 8
01039
01040
01041 #define FF_I_TYPE 1
01042 #define FF_P_TYPE 2
01043 #define FF_B_TYPE 3
01044 #define FF_S_TYPE 4
01045 #define FF_SI_TYPE 5
01046 #define FF_SP_TYPE 6
01047 #define FF_BI_TYPE 7
01048
01049 #define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore).
01050 #define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer.
01051 #define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content.
01052 #define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update).
01053
01054 typedef struct AVPacket {
01064 int64_t pts;
01070 int64_t dts;
01071 uint8_t *data;
01072 int size;
01073 int stream_index;
01074 int flags;
01079 int duration;
01080 void (*destruct)(struct AVPacket *);
01081 void *priv;
01082 int64_t pos;
01083
01101 int64_t convergence_duration;
01102 } AVPacket;
01103 #define AV_PKT_FLAG_KEY 0x0001
01104 #if LIBAVCODEC_VERSION_MAJOR < 53
01105 #define PKT_FLAG_KEY AV_PKT_FLAG_KEY
01106 #endif
01107
01117 typedef struct AVFrame {
01118 FF_COMMON_FRAME
01119 } AVFrame;
01120
01128 typedef struct AVCodecContext {
01133 const AVClass *av_class;
01139 int bit_rate;
01140
01147 int bit_rate_tolerance;
01148
01154 int flags;
01155
01164 int sub_id;
01165
01173 int me_method;
01174
01186 uint8_t *extradata;
01187 int extradata_size;
01188
01197 AVRational time_base;
01198
01199
01207 int width, height;
01208
01209 #define FF_ASPECT_EXTENDED 15
01210
01216 int gop_size;
01217
01225 enum PixelFormat pix_fmt;
01226
01233 int rate_emu;
01234
01254 void (*draw_horiz_band)(struct AVCodecContext *s,
01255 const AVFrame *src, int offset[4],
01256 int y, int type, int height);
01257
01258
01259 int sample_rate;
01260 int channels;
01261
01267 enum AVSampleFormat sample_fmt;
01268
01269
01273 int frame_size;
01274 int frame_number;
01275 #if LIBAVCODEC_VERSION_MAJOR < 53
01276 int real_pict_num;
01277 #endif
01278
01285 int delay;
01286
01287
01288 float qcompress;
01289 float qblur;
01290
01296 int qmin;
01297
01303 int qmax;
01304
01310 int max_qdiff;
01311
01318 int max_b_frames;
01319
01327 float b_quant_factor;
01328
01330 int rc_strategy;
01331 #define FF_RC_STRATEGY_XVID 1
01332
01333 int b_frame_strategy;
01334
01341 int hurry_up;
01342
01343 struct AVCodec *codec;
01344
01345 void *priv_data;
01346
01347 int rtp_payload_size;
01348
01349
01350
01351
01352
01353
01354
01355
01356
01357
01358
01359
01360
01361 void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb);
01362
01363
01364 int mv_bits;
01365 int header_bits;
01366 int i_tex_bits;
01367 int p_tex_bits;
01368 int i_count;
01369 int p_count;
01370 int skip_count;
01371 int misc_bits;
01372
01378 int frame_bits;
01379
01385 void *opaque;
01386
01387 char codec_name[32];
01388 enum AVMediaType codec_type;
01389 enum CodecID codec_id;
01390
01404 unsigned int codec_tag;
01405
01411 int workaround_bugs;
01412 #define FF_BUG_AUTODETECT 1
01413 #define FF_BUG_OLD_MSMPEG4 2
01414 #define FF_BUG_XVID_ILACE 4
01415 #define FF_BUG_UMP4 8
01416 #define FF_BUG_NO_PADDING 16
01417 #define FF_BUG_AMV 32
01418 #define FF_BUG_AC_VLC 0
01419 #define FF_BUG_QPEL_CHROMA 64
01420 #define FF_BUG_STD_QPEL 128
01421 #define FF_BUG_QPEL_CHROMA2 256
01422 #define FF_BUG_DIRECT_BLOCKSIZE 512
01423 #define FF_BUG_EDGE 1024
01424 #define FF_BUG_HPEL_CHROMA 2048
01425 #define FF_BUG_DC_CLIP 4096
01426 #define FF_BUG_MS 8192
01427 #define FF_BUG_TRUNCATED 16384
01428
01429
01435 int luma_elim_threshold;
01436
01442 int chroma_elim_threshold;
01443
01456 int strict_std_compliance;
01457 #define FF_COMPLIANCE_VERY_STRICT 2
01458 #define FF_COMPLIANCE_STRICT 1
01459 #define FF_COMPLIANCE_NORMAL 0
01460 #if FF_API_INOFFICIAL
01461 #define FF_COMPLIANCE_INOFFICIAL -1
01462 #endif
01463 #define FF_COMPLIANCE_UNOFFICIAL -1
01464 #define FF_COMPLIANCE_EXPERIMENTAL -2
01465
01466
01471 float b_quant_offset;
01472
01479 int error_recognition;
01480 #define FF_ER_CAREFUL 1
01481 #define FF_ER_COMPLIANT 2
01482 #define FF_ER_AGGRESSIVE 3
01483 #define FF_ER_VERY_AGGRESSIVE 4
01484
01496 int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic);
01497
01505 void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic);
01506
01513 int has_b_frames;
01514
01519 int block_align;
01520
01521 int parse_only;
01522
01523
01524
01530 int mpeg_quant;
01531
01537 char *stats_out;
01538
01545 char *stats_in;
01546
01553 float rc_qsquish;
01554
01555 float rc_qmod_amp;
01556 int rc_qmod_freq;
01557
01563 RcOverride *rc_override;
01564 int rc_override_count;
01565
01571 const char *rc_eq;
01572
01578 int rc_max_rate;
01579
01585 int rc_min_rate;
01586
01592 int rc_buffer_size;
01593 float rc_buffer_aggressivity;
01594
01602 float i_quant_factor;
01603
01609 float i_quant_offset;
01610
01616 float rc_initial_cplx;
01617
01623 int dct_algo;
01624 #define FF_DCT_AUTO 0
01625 #define FF_DCT_FASTINT 1
01626 #define FF_DCT_INT 2
01627 #define FF_DCT_MMX 3
01628 #define FF_DCT_MLIB 4
01629 #define FF_DCT_ALTIVEC 5
01630 #define FF_DCT_FAAN 6
01631
01637 float lumi_masking;
01638
01644 float temporal_cplx_masking;
01645
01651 float spatial_cplx_masking;
01652
01658 float p_masking;
01659
01665 float dark_masking;
01666
01672 int idct_algo;
01673 #define FF_IDCT_AUTO 0
01674 #define FF_IDCT_INT 1
01675 #define FF_IDCT_SIMPLE 2
01676 #define FF_IDCT_SIMPLEMMX 3
01677 #define FF_IDCT_LIBMPEG2MMX 4
01678 #define FF_IDCT_PS2 5
01679 #define FF_IDCT_MLIB 6
01680 #define FF_IDCT_ARM 7
01681 #define FF_IDCT_ALTIVEC 8
01682 #define FF_IDCT_SH4 9
01683 #define FF_IDCT_SIMPLEARM 10
01684 #define FF_IDCT_H264 11
01685 #define FF_IDCT_VP3 12
01686 #define FF_IDCT_IPP 13
01687 #define FF_IDCT_XVIDMMX 14
01688 #define FF_IDCT_CAVS 15
01689 #define FF_IDCT_SIMPLEARMV5TE 16
01690 #define FF_IDCT_SIMPLEARMV6 17
01691 #define FF_IDCT_SIMPLEVIS 18
01692 #define FF_IDCT_WMV2 19
01693 #define FF_IDCT_FAAN 20
01694 #define FF_IDCT_EA 21
01695 #define FF_IDCT_SIMPLENEON 22
01696 #define FF_IDCT_SIMPLEALPHA 23
01697 #define FF_IDCT_BINK 24
01698
01704 int slice_count;
01710 int *slice_offset;
01711
01717 int error_concealment;
01718 #define FF_EC_GUESS_MVS 1
01719 #define FF_EC_DEBLOCK 2
01720
01729 unsigned dsp_mask;
01730
01731 #if FF_API_MM_FLAGS
01732 #define FF_MM_FORCE AV_CPU_FLAG_FORCE
01733 #define FF_MM_MMX AV_CPU_FLAG_MMX
01734 #define FF_MM_3DNOW AV_CPU_FLAG_3DNOW
01735 #define FF_MM_MMXEXT AV_CPU_FLAG_MMX2
01736 #define FF_MM_MMX2 AV_CPU_FLAG_MMX2
01737 #define FF_MM_SSE AV_CPU_FLAG_SSE
01738 #define FF_MM_SSE2 AV_CPU_FLAG_SSE2
01739 #define FF_MM_SSE2SLOW AV_CPU_FLAG_SSE2SLOW
01740 #define FF_MM_3DNOWEXT AV_CPU_FLAG_3DNOWEXT
01741 #define FF_MM_SSE3 AV_CPU_FLAG_SSE3
01742 #define FF_MM_SSE3SLOW AV_CPU_FLAG_SSE3SLOW
01743 #define FF_MM_SSSE3 AV_CPU_FLAG_SSSE3
01744 #define FF_MM_SSE4 AV_CPU_FLAG_SSE4
01745 #define FF_MM_SSE42 AV_CPU_FLAG_SSE42
01746 #define FF_MM_IWMMXT AV_CPU_FLAG_IWMMXT
01747 #define FF_MM_ALTIVEC AV_CPU_FLAG_ALTIVEC
01748 #endif
01749
01755 int bits_per_coded_sample;
01756
01762 int prediction_method;
01763 #define FF_PRED_LEFT 0
01764 #define FF_PRED_PLANE 1
01765 #define FF_PRED_MEDIAN 2
01766
01774 AVRational sample_aspect_ratio;
01775
01781 AVFrame *coded_frame;
01782
01788 int debug;
01789 #define FF_DEBUG_PICT_INFO 1
01790 #define FF_DEBUG_RC 2
01791 #define FF_DEBUG_BITSTREAM 4
01792 #define FF_DEBUG_MB_TYPE 8
01793 #define FF_DEBUG_QP 16
01794 #define FF_DEBUG_MV 32
01795 #define FF_DEBUG_DCT_COEFF 0x00000040
01796 #define FF_DEBUG_SKIP 0x00000080
01797 #define FF_DEBUG_STARTCODE 0x00000100
01798 #define FF_DEBUG_PTS 0x00000200
01799 #define FF_DEBUG_ER 0x00000400
01800 #define FF_DEBUG_MMCO 0x00000800
01801 #define FF_DEBUG_BUGS 0x00001000
01802 #define FF_DEBUG_VIS_QP 0x00002000
01803 #define FF_DEBUG_VIS_MB_TYPE 0x00004000
01804 #define FF_DEBUG_BUFFERS 0x00008000
01805
01811 int debug_mv;
01812 #define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames
01813 #define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames
01814 #define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames
01815
01821 uint64_t error[4];
01822
01828 int mb_qmin;
01829
01835 int mb_qmax;
01836
01842 int me_cmp;
01848 int me_sub_cmp;
01854 int mb_cmp;
01860 int ildct_cmp;
01861 #define FF_CMP_SAD 0
01862 #define FF_CMP_SSE 1
01863 #define FF_CMP_SATD 2
01864 #define FF_CMP_DCT 3
01865 #define FF_CMP_PSNR 4
01866 #define FF_CMP_BIT 5
01867 #define FF_CMP_RD 6
01868 #define FF_CMP_ZERO 7
01869 #define FF_CMP_VSAD 8
01870 #define FF_CMP_VSSE 9
01871 #define FF_CMP_NSSE 10
01872 #define FF_CMP_W53 11
01873 #define FF_CMP_W97 12
01874 #define FF_CMP_DCTMAX 13
01875 #define FF_CMP_DCT264 14
01876 #define FF_CMP_CHROMA 256
01877
01883 int dia_size;
01884
01890 int last_predictor_count;
01891
01897 int pre_me;
01898
01904 int me_pre_cmp;
01905
01911 int pre_dia_size;
01912
01918 int me_subpel_quality;
01919
01929 enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt);
01930
01939 int dtg_active_format;
01940 #define FF_DTG_AFD_SAME 8
01941 #define FF_DTG_AFD_4_3 9
01942 #define FF_DTG_AFD_16_9 10
01943 #define FF_DTG_AFD_14_9 11
01944 #define FF_DTG_AFD_4_3_SP_14_9 13
01945 #define FF_DTG_AFD_16_9_SP_14_9 14
01946 #define FF_DTG_AFD_SP_4_3 15
01947
01955 int me_range;
01956
01962 int intra_quant_bias;
01963 #define FF_DEFAULT_QUANT_BIAS 999999
01964
01970 int inter_quant_bias;
01971
01978 int color_table_id;
01979
01984 int internal_buffer_count;
01985
01990 void *internal_buffer;
01991
01998 int global_quality;
01999
02000 #define FF_CODER_TYPE_VLC 0
02001 #define FF_CODER_TYPE_AC 1
02002 #define FF_CODER_TYPE_RAW 2
02003 #define FF_CODER_TYPE_RLE 3
02004 #define FF_CODER_TYPE_DEFLATE 4
02005
02010 int coder_type;
02011
02017 int context_model;
02018 #if 0
02019
02024 uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size);
02025 #endif
02026
02032 int slice_flags;
02033 #define SLICE_FLAG_CODED_ORDER 0x0001
02034 #define SLICE_FLAG_ALLOW_FIELD 0x0002
02035 #define SLICE_FLAG_ALLOW_PLANE 0x0004
02036
02037
02042 int xvmc_acceleration;
02043
02049 int mb_decision;
02050 #define FF_MB_DECISION_SIMPLE 0
02051 #define FF_MB_DECISION_BITS 1
02052 #define FF_MB_DECISION_RD 2
02053
02054
02059 uint16_t *intra_matrix;
02060
02066 uint16_t *inter_matrix;
02067
02074 unsigned int stream_codec_tag;
02075
02082 int scenechange_threshold;
02083
02089 int lmin;
02090
02096 int lmax;
02097
02098 #if FF_API_PALETTE_CONTROL
02099
02104 struct AVPaletteControl *palctrl;
02105 #endif
02106
02112 int noise_reduction;
02113
02126 int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic);
02127
02133 int rc_initial_buffer_occupancy;
02134
02140 int inter_threshold;
02141
02147 int flags2;
02148
02154 int error_rate;
02155
02161 int antialias_algo;
02162 #define FF_AA_AUTO 0
02163 #define FF_AA_FASTINT 1 //not implemented yet
02164 #define FF_AA_INT 2
02165 #define FF_AA_FLOAT 3
02166
02171 int quantizer_noise_shaping;
02172
02179 int thread_count;
02180
02190 int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size);
02191
02198 void *thread_opaque;
02199
02207 int me_threshold;
02208
02214 int mb_threshold;
02215
02221 int intra_dc_precision;
02222
02228 int nsse_weight;
02229
02235 int skip_top;
02236
02242 int skip_bottom;
02243
02249 int profile;
02250 #define FF_PROFILE_UNKNOWN -99
02251
02252 #define FF_PROFILE_AAC_MAIN 0
02253 #define FF_PROFILE_AAC_LOW 1
02254 #define FF_PROFILE_AAC_SSR 2
02255 #define FF_PROFILE_AAC_LTP 3
02256
02257 #define FF_PROFILE_DTS 20
02258 #define FF_PROFILE_DTS_ES 30
02259 #define FF_PROFILE_DTS_96_24 40
02260 #define FF_PROFILE_DTS_HD_HRA 50
02261 #define FF_PROFILE_DTS_HD_MA 60
02262
02263 #define FF_PROFILE_H264_BASELINE 66
02264 #define FF_PROFILE_H264_MAIN 77
02265 #define FF_PROFILE_H264_EXTENDED 88
02266 #define FF_PROFILE_H264_HIGH 100
02267 #define FF_PROFILE_H264_HIGH_10 110
02268 #define FF_PROFILE_H264_HIGH_422 122
02269 #define FF_PROFILE_H264_HIGH_444 244
02270 #define FF_PROFILE_H264_CAVLC_444 44
02271
02277 int level;
02278 #define FF_LEVEL_UNKNOWN -99
02279
02285 int lowres;
02286
02293 int coded_width, coded_height;
02294
02300 int frame_skip_threshold;
02301
02307 int frame_skip_factor;
02308
02314 int frame_skip_exp;
02315
02321 int frame_skip_cmp;
02322
02329 float border_masking;
02330
02336 int mb_lmin;
02337
02343 int mb_lmax;
02344
02350 int me_penalty_compensation;
02351
02357 enum AVDiscard skip_loop_filter;
02358
02364 enum AVDiscard skip_idct;
02365
02371 enum AVDiscard skip_frame;
02372
02378 int bidir_refine;
02379
02385 int brd_scale;
02386
02392 float crf;
02393
02399 int cqp;
02400
02406 int keyint_min;
02407
02413 int refs;
02414
02420 int chromaoffset;
02421
02427 int bframebias;
02428
02434 int trellis;
02435
02441 float complexityblur;
02442
02449 int deblockalpha;
02450
02457 int deblockbeta;
02458
02464 int partitions;
02465 #define X264_PART_I4X4 0x001
02466 #define X264_PART_I8X8 0x002
02467 #define X264_PART_P8X8 0x010
02468 #define X264_PART_P4X4 0x020
02469 #define X264_PART_B8X8 0x100
02470
02476 int directpred;
02477
02483 int cutoff;
02484
02490 int scenechange_factor;
02491
02498 int mv0_threshold;
02499
02505 int b_sensitivity;
02506
02511 int compression_level;
02512 #define FF_COMPRESSION_DEFAULT -1
02513
02514 #if FF_API_USE_LPC
02515
02521 int use_lpc;
02522 #endif
02523
02529 int lpc_coeff_precision;
02530
02535 int min_prediction_order;
02536
02541 int max_prediction_order;
02542
02548 int prediction_order_method;
02549
02554 int min_partition_order;
02555
02560 int max_partition_order;
02561
02567 int64_t timecode_frame_start;
02568
02569 #if LIBAVCODEC_VERSION_MAJOR < 53
02570
02576 int request_channels;
02577 #endif
02578
02585 float drc_scale;
02586
02594 int64_t reordered_opaque;
02595
02602 int bits_per_raw_sample;
02603
02609 int64_t channel_layout;
02610
02616 int64_t request_channel_layout;
02617
02623 float rc_max_available_vbv_use;
02624
02630 float rc_min_vbv_overflow_use;
02631
02637 struct AVHWAccel *hwaccel;
02638
02646 int ticks_per_frame;
02647
02658 void *hwaccel_context;
02659
02665 enum AVColorPrimaries color_primaries;
02666
02672 enum AVColorTransferCharacteristic color_trc;
02673
02679 enum AVColorSpace colorspace;
02680
02686 enum AVColorRange color_range;
02687
02693 enum AVChromaLocation chroma_sample_location;
02694
02713 int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count);
02714
02723 int weighted_p_pred;
02724
02733 int aq_mode;
02734
02741 float aq_strength;
02742
02749 float psy_rd;
02750
02757 float psy_trellis;
02758
02765 int rc_lookahead;
02766
02774 float crf_max;
02775
02776 int log_level_offset;
02777
02783 enum AVLPCType lpc_type;
02784
02790 int lpc_passes;
02791
02799 int slices;
02800
02809 uint8_t *subtitle_header;
02810 int subtitle_header_size;
02811
02819 AVPacket *pkt;
02820 } AVCodecContext;
02821
02825 typedef struct AVProfile {
02826 int profile;
02827 const char *name;
02828 } AVProfile;
02829
02833 typedef struct AVCodec {
02840 const char *name;
02841 enum AVMediaType type;
02842 enum CodecID id;
02843 int priv_data_size;
02844 int (*init)(AVCodecContext *);
02845 int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
02846 int (*close)(AVCodecContext *);
02847 int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt);
02852 int capabilities;
02853 struct AVCodec *next;
02858 void (*flush)(AVCodecContext *);
02859 const AVRational *supported_framerates;
02860 const enum PixelFormat *pix_fmts;
02861
02865 const char *long_name;
02866 const int *supported_samplerates;
02867 const enum AVSampleFormat *sample_fmts;
02868 const int64_t *channel_layouts;
02869 uint8_t max_lowres;
02870 AVClass *priv_class;
02871 const AVProfile *profiles;
02872 } AVCodec;
02873
02877 typedef struct AVHWAccel {
02883 const char *name;
02884
02890 enum AVMediaType type;
02891
02897 enum CodecID id;
02898
02904 enum PixelFormat pix_fmt;
02905
02910 int capabilities;
02911
02912 struct AVHWAccel *next;
02913
02928 int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
02929
02941 int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size);
02942
02952 int (*end_frame)(AVCodecContext *avctx);
02953
02961 int priv_data_size;
02962 } AVHWAccel;
02963
02968 typedef struct AVPicture {
02969 uint8_t *data[4];
02970 int linesize[4];
02971 } AVPicture;
02972
02973 #if FF_API_PALETTE_CONTROL
02974
02982 #define AVPALETTE_SIZE 1024
02983 #define AVPALETTE_COUNT 256
02984 typedef struct AVPaletteControl {
02985
02986
02987
02988 int palette_changed;
02989
02990
02991
02992
02993
02994 unsigned int palette[AVPALETTE_COUNT];
02995
02996 } AVPaletteControl attribute_deprecated;
02997 #endif
02998
02999 enum AVSubtitleType {
03000 SUBTITLE_NONE,
03001
03002 SUBTITLE_BITMAP,
03003
03008 SUBTITLE_TEXT,
03009
03014 SUBTITLE_ASS,
03015 };
03016
03017 typedef struct AVSubtitleRect {
03018 int x;
03019 int y;
03020 int w;
03021 int h;
03022 int nb_colors;
03023
03028 AVPicture pict;
03029 enum AVSubtitleType type;
03030
03031 char *text;
03032
03038 char *ass;
03039 } AVSubtitleRect;
03040
03041 typedef struct AVSubtitle {
03042 uint16_t format;
03043 uint32_t start_display_time;
03044 uint32_t end_display_time;
03045 unsigned num_rects;
03046 AVSubtitleRect **rects;
03047 int64_t pts;
03048 } AVSubtitle;
03049
03050
03051
03055 attribute_deprecated void av_destruct_packet_nofree(AVPacket *pkt);
03056
03060 void av_destruct_packet(AVPacket *pkt);
03061
03067 void av_init_packet(AVPacket *pkt);
03068
03077 int av_new_packet(AVPacket *pkt, int size);
03078
03085 void av_shrink_packet(AVPacket *pkt, int size);
03086
03093 int av_grow_packet(AVPacket *pkt, int grow_by);
03094
03099 int av_dup_packet(AVPacket *pkt);
03100
03106 void av_free_packet(AVPacket *pkt);
03107
03108
03109
03110 struct ReSampleContext;
03111 struct AVResampleContext;
03112
03113 typedef struct ReSampleContext ReSampleContext;
03114
03115 #if FF_API_AUDIO_OLD
03116
03119 attribute_deprecated ReSampleContext *audio_resample_init(int output_channels, int input_channels,
03120 int output_rate, int input_rate);
03121 #endif
03122
03138 ReSampleContext *av_audio_resample_init(int output_channels, int input_channels,
03139 int output_rate, int input_rate,
03140 enum AVSampleFormat sample_fmt_out,
03141 enum AVSampleFormat sample_fmt_in,
03142 int filter_length, int log2_phase_count,
03143 int linear, double cutoff);
03144
03145 int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples);
03146 void audio_resample_close(ReSampleContext *s);
03147
03148
03158 struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff);
03159
03169 int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx);
03170
03171
03184 void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance);
03185 void av_resample_close(struct AVResampleContext *c);
03186
03196 int avpicture_alloc(AVPicture *picture, enum PixelFormat pix_fmt, int width, int height);
03197
03203 void avpicture_free(AVPicture *picture);
03204
03222 int avpicture_fill(AVPicture *picture, uint8_t *ptr,
03223 enum PixelFormat pix_fmt, int width, int height);
03224 int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, int height,
03225 unsigned char *dest, int dest_size);
03226
03239 int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height);
03240 void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift);
03241 const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt);
03242 void avcodec_set_dimensions(AVCodecContext *s, int width, int height);
03243
03244 #if LIBAVCODEC_VERSION_MAJOR < 53
03245
03258 attribute_deprecated enum PixelFormat avcodec_get_pix_fmt(const char* name);
03259 #endif
03260
03266 unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt);
03267
03275 size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag);
03276
03277 #define FF_LOSS_RESOLUTION 0x0001
03278 #define FF_LOSS_DEPTH 0x0002
03279 #define FF_LOSS_COLORSPACE 0x0004
03280 #define FF_LOSS_ALPHA 0x0008
03281 #define FF_LOSS_COLORQUANT 0x0010
03282 #define FF_LOSS_CHROMA 0x0020
03301 int avcodec_get_pix_fmt_loss(enum PixelFormat dst_pix_fmt, enum PixelFormat src_pix_fmt,
03302 int has_alpha);
03303
03326 enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelFormat src_pix_fmt,
03327 int has_alpha, int *loss_ptr);
03328
03329 #if LIBAVCODEC_VERSION_MAJOR < 53
03330
03333 attribute_deprecated
03334 void avcodec_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt);
03335 #endif
03336
03337 #define FF_ALPHA_TRANSP 0x0001
03338 #define FF_ALPHA_SEMI_TRANSP 0x0002
03339
03344 int img_get_alpha_info(const AVPicture *src,
03345 enum PixelFormat pix_fmt, int width, int height);
03346
03347
03348
03349 int avpicture_deinterlace(AVPicture *dst, const AVPicture *src,
03350 enum PixelFormat pix_fmt, int width, int height);
03351
03352
03353
03359 AVCodec *av_codec_next(AVCodec *c);
03360
03364 unsigned avcodec_version(void);
03365
03369 const char *avcodec_configuration(void);
03370
03374 const char *avcodec_license(void);
03375
03382 void avcodec_init(void);
03383
03384 #if LIBAVCODEC_VERSION_MAJOR < 53
03385
03388 attribute_deprecated void register_avcodec(AVCodec *codec);
03389 #endif
03390
03396 void avcodec_register(AVCodec *codec);
03397
03404 AVCodec *avcodec_find_encoder(enum CodecID id);
03405
03412 AVCodec *avcodec_find_encoder_by_name(const char *name);
03413
03420 AVCodec *avcodec_find_decoder(enum CodecID id);
03421
03428 AVCodec *avcodec_find_decoder_by_name(const char *name);
03429 void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode);
03430
03438 const char *av_get_profile_name(const AVCodec *codec, int profile);
03439
03445 void avcodec_get_context_defaults(AVCodecContext *s);
03446
03449 void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType);
03450
03453 int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec);
03454
03462 AVCodecContext *avcodec_alloc_context(void);
03463
03466 AVCodecContext *avcodec_alloc_context2(enum AVMediaType);
03467
03470 AVCodecContext *avcodec_alloc_context3(AVCodec *codec);
03471
03483 int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src);
03484
03490 void avcodec_get_frame_defaults(AVFrame *pic);
03491
03499 AVFrame *avcodec_alloc_frame(void);
03500
03501 int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic);
03502 void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic);
03503 int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame *pic);
03504
03512 unsigned avcodec_get_edge_width(void);
03522 void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height);
03532 void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height,
03533 int linesize_align[4]);
03534
03535 #if LIBAVCODEC_VERSION_MAJOR < 53
03536
03539 attribute_deprecated
03540 int avcodec_check_dimensions(void *av_log_ctx, unsigned int w, unsigned int h);
03541 #endif
03542
03543 enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat * fmt);
03544
03545 int avcodec_thread_init(AVCodecContext *s, int thread_count);
03546 void avcodec_thread_free(AVCodecContext *s);
03547 int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
03548 int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
03549
03550
03578 int avcodec_open(AVCodecContext *avctx, AVCodec *codec);
03579
03580 #if FF_API_AUDIO_OLD
03581
03594 attribute_deprecated int avcodec_decode_audio2(AVCodecContext *avctx, int16_t *samples,
03595 int *frame_size_ptr,
03596 const uint8_t *buf, int buf_size);
03597 #endif
03598
03638 int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples,
03639 int *frame_size_ptr,
03640 AVPacket *avpkt);
03641
03642 #if FF_API_VIDEO_OLD
03643
03656 attribute_deprecated int avcodec_decode_video(AVCodecContext *avctx, AVFrame *picture,
03657 int *got_picture_ptr,
03658 const uint8_t *buf, int buf_size);
03659 #endif
03660
03701 int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture,
03702 int *got_picture_ptr,
03703 AVPacket *avpkt);
03704
03705 #if FF_API_SUBTITLE_OLD
03706
03707
03708
03709 attribute_deprecated int avcodec_decode_subtitle(AVCodecContext *avctx, AVSubtitle *sub,
03710 int *got_sub_ptr,
03711 const uint8_t *buf, int buf_size);
03712 #endif
03713
03730 int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub,
03731 int *got_sub_ptr,
03732 AVPacket *avpkt);
03733
03739 void avsubtitle_free(AVSubtitle *sub);
03740
03741 int avcodec_parse_frame(AVCodecContext *avctx, uint8_t **pdata,
03742 int *data_size_ptr,
03743 uint8_t *buf, int buf_size);
03744
03764 int avcodec_encode_audio(AVCodecContext *avctx, uint8_t *buf, int buf_size,
03765 const short *samples);
03766
03779 int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size,
03780 const AVFrame *pict);
03781 int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size,
03782 const AVSubtitle *sub);
03783
03784 int avcodec_close(AVCodecContext *avctx);
03785
03796 void avcodec_register_all(void);
03797
03801 void avcodec_flush_buffers(AVCodecContext *avctx);
03802
03803 void avcodec_default_free_buffers(AVCodecContext *s);
03804
03805
03806
03813 char av_get_pict_type_char(int pict_type);
03814
03821 int av_get_bits_per_sample(enum CodecID codec_id);
03822
03823 #if FF_API_OLD_SAMPLE_FMT
03824
03827 attribute_deprecated
03828 int av_get_bits_per_sample_format(enum AVSampleFormat sample_fmt);
03829 #endif
03830
03831
03832 typedef struct AVCodecParserContext {
03833 void *priv_data;
03834 struct AVCodecParser *parser;
03835 int64_t frame_offset;
03836 int64_t cur_offset;
03837
03838 int64_t next_frame_offset;
03839
03840 int pict_type;
03850 int repeat_pict;
03851 int64_t pts;
03852 int64_t dts;
03853
03854
03855 int64_t last_pts;
03856 int64_t last_dts;
03857 int fetch_timestamp;
03858
03859 #define AV_PARSER_PTS_NB 4
03860 int cur_frame_start_index;
03861 int64_t cur_frame_offset[AV_PARSER_PTS_NB];
03862 int64_t cur_frame_pts[AV_PARSER_PTS_NB];
03863 int64_t cur_frame_dts[AV_PARSER_PTS_NB];
03864
03865 int flags;
03866 #define PARSER_FLAG_COMPLETE_FRAMES 0x0001
03867 #define PARSER_FLAG_ONCE 0x0002
03869 #define PARSER_FLAG_FETCHED_OFFSET 0x0004
03870
03871 int64_t offset;
03872 int64_t cur_frame_end[AV_PARSER_PTS_NB];
03873
03880 int key_frame;
03881
03899 int64_t convergence_duration;
03900
03901
03911 int dts_sync_point;
03912
03926 int dts_ref_dts_delta;
03927
03940 int pts_dts_delta;
03941
03947 int64_t cur_frame_pos[AV_PARSER_PTS_NB];
03948
03952 int64_t pos;
03953
03957 int64_t last_pos;
03958 } AVCodecParserContext;
03959
03960 typedef struct AVCodecParser {
03961 int codec_ids[5];
03962 int priv_data_size;
03963 int (*parser_init)(AVCodecParserContext *s);
03964 int (*parser_parse)(AVCodecParserContext *s,
03965 AVCodecContext *avctx,
03966 const uint8_t **poutbuf, int *poutbuf_size,
03967 const uint8_t *buf, int buf_size);
03968 void (*parser_close)(AVCodecParserContext *s);
03969 int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size);
03970 struct AVCodecParser *next;
03971 } AVCodecParser;
03972
03973 AVCodecParser *av_parser_next(AVCodecParser *c);
03974
03975 void av_register_codec_parser(AVCodecParser *parser);
03976 AVCodecParserContext *av_parser_init(int codec_id);
03977
03978 #if LIBAVCODEC_VERSION_MAJOR < 53
03979 attribute_deprecated
03980 int av_parser_parse(AVCodecParserContext *s,
03981 AVCodecContext *avctx,
03982 uint8_t **poutbuf, int *poutbuf_size,
03983 const uint8_t *buf, int buf_size,
03984 int64_t pts, int64_t dts);
03985 #endif
03986
04015 int av_parser_parse2(AVCodecParserContext *s,
04016 AVCodecContext *avctx,
04017 uint8_t **poutbuf, int *poutbuf_size,
04018 const uint8_t *buf, int buf_size,
04019 int64_t pts, int64_t dts,
04020 int64_t pos);
04021
04022 int av_parser_change(AVCodecParserContext *s,
04023 AVCodecContext *avctx,
04024 uint8_t **poutbuf, int *poutbuf_size,
04025 const uint8_t *buf, int buf_size, int keyframe);
04026 void av_parser_close(AVCodecParserContext *s);
04027
04028
04029 typedef struct AVBitStreamFilterContext {
04030 void *priv_data;
04031 struct AVBitStreamFilter *filter;
04032 AVCodecParserContext *parser;
04033 struct AVBitStreamFilterContext *next;
04034 } AVBitStreamFilterContext;
04035
04036
04037 typedef struct AVBitStreamFilter {
04038 const char *name;
04039 int priv_data_size;
04040 int (*filter)(AVBitStreamFilterContext *bsfc,
04041 AVCodecContext *avctx, const char *args,
04042 uint8_t **poutbuf, int *poutbuf_size,
04043 const uint8_t *buf, int buf_size, int keyframe);
04044 void (*close)(AVBitStreamFilterContext *bsfc);
04045 struct AVBitStreamFilter *next;
04046 } AVBitStreamFilter;
04047
04048 void av_register_bitstream_filter(AVBitStreamFilter *bsf);
04049 AVBitStreamFilterContext *av_bitstream_filter_init(const char *name);
04050 int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc,
04051 AVCodecContext *avctx, const char *args,
04052 uint8_t **poutbuf, int *poutbuf_size,
04053 const uint8_t *buf, int buf_size, int keyframe);
04054 void av_bitstream_filter_close(AVBitStreamFilterContext *bsf);
04055
04056 AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f);
04057
04058
04059
04065 void *av_fast_realloc(void *ptr, unsigned int *size, FF_INTERNALC_MEM_TYPE min_size);
04066
04079 void av_fast_malloc(void *ptr, unsigned int *size, FF_INTERNALC_MEM_TYPE min_size);
04080
04081 #if LIBAVCODEC_VERSION_MAJOR < 53
04082
04085 attribute_deprecated
04086 void av_picture_data_copy(uint8_t *dst_data[4], int dst_linesize[4],
04087 uint8_t *src_data[4], int src_linesize[4],
04088 enum PixelFormat pix_fmt, int width, int height);
04089 #endif
04090
04094 void av_picture_copy(AVPicture *dst, const AVPicture *src,
04095 enum PixelFormat pix_fmt, int width, int height);
04096
04100 int av_picture_crop(AVPicture *dst, const AVPicture *src,
04101 enum PixelFormat pix_fmt, int top_band, int left_band);
04102
04106 int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum PixelFormat pix_fmt,
04107 int padtop, int padbottom, int padleft, int padright, int *color);
04108
04116 unsigned int av_xiphlacing(unsigned char *s, unsigned int v);
04117
04118 #if LIBAVCODEC_VERSION_MAJOR < 53
04119
04124 attribute_deprecated int av_parse_video_frame_size(int *width_ptr, int *height_ptr, const char *str);
04125
04131 attribute_deprecated int av_parse_video_frame_rate(AVRational *frame_rate, const char *str);
04132 #endif
04133
04146 void av_log_missing_feature(void *avc, const char *feature, int want_sample);
04147
04156 void av_log_ask_for_sample(void *avc, const char *msg);
04157
04161 void av_register_hwaccel(AVHWAccel *hwaccel);
04162
04168 AVHWAccel *av_hwaccel_next(AVHWAccel *hwaccel);
04169
04170
04174 enum AVLockOp {
04175 AV_LOCK_CREATE,
04176 AV_LOCK_OBTAIN,
04177 AV_LOCK_RELEASE,
04178 AV_LOCK_DESTROY,
04179 };
04180
04194 int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op));
04195
04196 #endif