FFmpeg
Modules | Classes | Macros | Typedefs | Enumerations | Functions
Core functions/structures.

Basic definitions, functions for querying libavcodec capabilities, allocating core structures, etc. More...

Modules

 AVPacket
 Types and functions for working with AVPacket.
 
 AVHWAccel
 
 AVPicture
 Functions for working with AVPicture.
 

Classes

struct  AVCodecDescriptor
 This struct describes the properties of a single codec described by an AVCodecID. More...
 
struct  RcOverride
 
struct  AVPanScan
 Pan Scan area. More...
 
struct  AVCPBProperties
 This structure describes the bitrate properties of an encoded bitstream. More...
 
struct  AVCodecContext
 main external API structure. More...
 
struct  AVProfile
 AVProfile. More...
 
struct  AVCodecHWConfig
 
struct  AVCodec
 AVCodec. More...
 
struct  AVSubtitleRect
 
struct  AVSubtitle
 
struct  AVCodecParameters
 This struct describes the properties of an encoded stream. More...
 

Macros

#define AV_CODEC_PROP_INTRA_ONLY   (1 << 0)
 Codec uses only intra compression. More...
 
#define AV_CODEC_PROP_LOSSY   (1 << 1)
 Codec supports lossy compression. More...
 
#define AV_CODEC_PROP_LOSSLESS   (1 << 2)
 Codec supports lossless compression. More...
 
#define AV_CODEC_PROP_REORDER   (1 << 3)
 Codec supports frame reordering. More...
 
#define AV_CODEC_PROP_BITMAP_SUB   (1 << 16)
 Subtitle codec is bitmap based Decoded AVSubtitle data can be read from the AVSubtitleRect->pict field.
 
#define AV_CODEC_PROP_TEXT_SUB   (1 << 17)
 Subtitle codec is text based. More...
 
#define AV_CODEC_FLAG_UNALIGNED   (1 << 0)
 Allow decoders to produce frames with data planes that are not aligned to CPU requirements (e.g. More...
 
#define AV_CODEC_FLAG_QSCALE   (1 << 1)
 Use fixed qscale.
 
#define AV_CODEC_FLAG_4MV   (1 << 2)
 4 MV per MB allowed / advanced prediction for H.263.
 
#define AV_CODEC_FLAG_OUTPUT_CORRUPT   (1 << 3)
 Output even those frames that might be corrupted.
 
#define AV_CODEC_FLAG_QPEL   (1 << 4)
 Use qpel MC.
 
#define AV_CODEC_FLAG_PASS1   (1 << 9)
 Use internal 2pass ratecontrol in first pass mode.
 
#define AV_CODEC_FLAG_PASS2   (1 << 10)
 Use internal 2pass ratecontrol in second pass mode.
 
#define AV_CODEC_FLAG_LOOP_FILTER   (1 << 11)
 loop filter.
 
#define AV_CODEC_FLAG_GRAY   (1 << 13)
 Only decode/encode grayscale.
 
#define AV_CODEC_FLAG_PSNR   (1 << 15)
 error[?] variables will be set during encoding.
 
#define AV_CODEC_FLAG_TRUNCATED   (1 << 16)
 Input bitstream might be truncated at a random location instead of only at frame boundaries.
 
#define AV_CODEC_FLAG_INTERLACED_DCT   (1 << 18)
 Use interlaced DCT.
 
#define AV_CODEC_FLAG_LOW_DELAY   (1 << 19)
 Force low delay.
 
#define AV_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)
 Place global headers in extradata instead of every keyframe.
 
#define AV_CODEC_FLAG_BITEXACT   (1 << 23)
 Use only bitexact stuff (except (I)DCT).
 
#define AV_CODEC_FLAG_AC_PRED   (1 << 24)
 H.263 advanced intra coding / MPEG-4 AC prediction.
 
#define AV_CODEC_FLAG_INTERLACED_ME   (1 << 29)
 interlaced motion estimation
 
#define AV_CODEC_FLAG_CLOSED_GOP   (1U << 31)
 
#define AV_CODEC_FLAG2_FAST   (1 << 0)
 Allow non spec compliant speedup tricks.
 
#define AV_CODEC_FLAG2_NO_OUTPUT   (1 << 2)
 Skip bitstream encoding.
 
#define AV_CODEC_FLAG2_LOCAL_HEADER   (1 << 3)
 Place global headers at every keyframe instead of in extradata.
 
#define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE   (1 << 13)
 timecode is in drop frame format. More...
 
#define AV_CODEC_FLAG2_CHUNKS   (1 << 15)
 Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries.
 
#define AV_CODEC_FLAG2_IGNORE_CROP   (1 << 16)
 Discard cropping information from SPS.
 
#define AV_CODEC_FLAG2_SHOW_ALL   (1 << 22)
 Show all frames before the first keyframe.
 
#define AV_CODEC_FLAG2_EXPORT_MVS   (1 << 28)
 Export motion vectors through frame side data.
 
#define AV_CODEC_FLAG2_SKIP_MANUAL   (1 << 29)
 Do not skip samples and export skip information as frame side data.
 
#define AV_CODEC_FLAG2_RO_FLUSH_NOOP   (1 << 30)
 Do not reset ASS ReadOrder field on flush (subtitles decoding)
 
#define AV_CODEC_CAP_DRAW_HORIZ_BAND   (1 << 0)
 Decoder can use draw_horiz_band callback.
 
#define AV_CODEC_CAP_DR1   (1 << 1)
 Codec uses get_buffer() for allocating buffers and supports custom allocators. More...
 
#define AV_CODEC_CAP_TRUNCATED   (1 << 3)
 
#define AV_CODEC_CAP_DELAY   (1 << 5)
 Encoder or decoder requires flushing with NULL input at the end in order to give the complete and correct output. More...
 
#define AV_CODEC_CAP_SMALL_LAST_FRAME   (1 << 6)
 Codec can be fed a final frame with a smaller size. More...
 
#define AV_CODEC_CAP_SUBFRAMES   (1 << 8)
 Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time, demuxers which do not do are connected to a parser to split what they return into proper frames. More...
 
#define AV_CODEC_CAP_EXPERIMENTAL   (1 << 9)
 Codec is experimental and is thus avoided in favor of non experimental encoders.
 
#define AV_CODEC_CAP_CHANNEL_CONF   (1 << 10)
 Codec should fill in channel configuration and samplerate instead of container.
 
#define AV_CODEC_CAP_FRAME_THREADS   (1 << 12)
 Codec supports frame-level multithreading.
 
#define AV_CODEC_CAP_SLICE_THREADS   (1 << 13)
 Codec supports slice-based (or partition-based) multithreading.
 
#define AV_CODEC_CAP_PARAM_CHANGE   (1 << 14)
 Codec supports changed parameters at any point.
 
#define AV_CODEC_CAP_AUTO_THREADS   (1 << 15)
 Codec supports avctx->thread_count == 0 (auto).
 
#define AV_CODEC_CAP_VARIABLE_FRAME_SIZE   (1 << 16)
 Audio encoder supports receiving a different number of samples in each call.
 
#define AV_CODEC_CAP_AVOID_PROBING   (1 << 17)
 Decoder is not a preferred choice for probing. More...
 
#define AV_CODEC_CAP_INTRA_ONLY   0x40000000
 Codec is intra only.
 
#define AV_CODEC_CAP_LOSSLESS   0x80000000
 Codec is lossless.
 
#define AV_CODEC_CAP_HARDWARE   (1 << 18)
 Codec is backed by a hardware implementation. More...
 
#define AV_CODEC_CAP_HYBRID   (1 << 19)
 Codec is potentially backed by a hardware implementation, but not necessarily. More...
 
#define AV_GET_BUFFER_FLAG_REF   (1 << 0)
 The decoder will keep a reference to the frame and may reuse it later.
 
#define AV_SUBTITLE_FLAG_FORCED   0x00000001
 

Typedefs

typedef struct AVCodecDescriptor AVCodecDescriptor
 This struct describes the properties of a single codec described by an AVCodecID. More...
 
typedef struct AVPanScan AVPanScan
 Pan Scan area. More...
 
typedef struct AVCPBProperties AVCPBProperties
 This structure describes the bitrate properties of an encoded bitstream. More...
 
typedef struct AVCodecContext AVCodecContext
 main external API structure. More...
 
typedef struct AVProfile AVProfile
 AVProfile.
 
typedef struct AVCodecHWConfig AVCodecHWConfig
 
typedef struct AVCodecDefault AVCodecDefault
 
typedef struct AVCodec AVCodec
 AVCodec.
 
typedef struct AVSubtitleRect AVSubtitleRect
 
typedef struct AVSubtitle AVSubtitle
 
typedef struct AVCodecParameters AVCodecParameters
 This struct describes the properties of an encoded stream. More...
 

Enumerations

enum  AVCodecID {
  AV_CODEC_ID_NONE, AV_CODEC_ID_MPEG1VIDEO, AV_CODEC_ID_MPEG2VIDEO, AV_CODEC_ID_H261,
  AV_CODEC_ID_H263, AV_CODEC_ID_RV10, AV_CODEC_ID_RV20, AV_CODEC_ID_MJPEG,
  AV_CODEC_ID_MJPEGB, AV_CODEC_ID_LJPEG, AV_CODEC_ID_SP5X, AV_CODEC_ID_JPEGLS,
  AV_CODEC_ID_MPEG4, AV_CODEC_ID_RAWVIDEO, AV_CODEC_ID_MSMPEG4V1, AV_CODEC_ID_MSMPEG4V2,
  AV_CODEC_ID_MSMPEG4V3, AV_CODEC_ID_WMV1, AV_CODEC_ID_WMV2, AV_CODEC_ID_H263P,
  AV_CODEC_ID_H263I, AV_CODEC_ID_FLV1, AV_CODEC_ID_SVQ1, AV_CODEC_ID_SVQ3,
  AV_CODEC_ID_DVVIDEO, AV_CODEC_ID_HUFFYUV, AV_CODEC_ID_CYUV, AV_CODEC_ID_H264,
  AV_CODEC_ID_INDEO3, AV_CODEC_ID_VP3, AV_CODEC_ID_THEORA, AV_CODEC_ID_ASV1,
  AV_CODEC_ID_ASV2, AV_CODEC_ID_FFV1, AV_CODEC_ID_4XM, AV_CODEC_ID_VCR1,
  AV_CODEC_ID_CLJR, AV_CODEC_ID_MDEC, AV_CODEC_ID_ROQ, AV_CODEC_ID_INTERPLAY_VIDEO,
  AV_CODEC_ID_XAN_WC3, AV_CODEC_ID_XAN_WC4, AV_CODEC_ID_RPZA, AV_CODEC_ID_CINEPAK,
  AV_CODEC_ID_WS_VQA, AV_CODEC_ID_MSRLE, AV_CODEC_ID_MSVIDEO1, AV_CODEC_ID_IDCIN,
  AV_CODEC_ID_8BPS, AV_CODEC_ID_SMC, AV_CODEC_ID_FLIC, AV_CODEC_ID_TRUEMOTION1,
  AV_CODEC_ID_VMDVIDEO, AV_CODEC_ID_MSZH, AV_CODEC_ID_ZLIB, AV_CODEC_ID_QTRLE,
  AV_CODEC_ID_TSCC, AV_CODEC_ID_ULTI, AV_CODEC_ID_QDRAW, AV_CODEC_ID_VIXL,
  AV_CODEC_ID_QPEG, AV_CODEC_ID_PNG, AV_CODEC_ID_PPM, AV_CODEC_ID_PBM,
  AV_CODEC_ID_PGM, AV_CODEC_ID_PGMYUV, AV_CODEC_ID_PAM, AV_CODEC_ID_FFVHUFF,
  AV_CODEC_ID_RV30, AV_CODEC_ID_RV40, AV_CODEC_ID_VC1, AV_CODEC_ID_WMV3,
  AV_CODEC_ID_LOCO, AV_CODEC_ID_WNV1, AV_CODEC_ID_AASC, AV_CODEC_ID_INDEO2,
  AV_CODEC_ID_FRAPS, AV_CODEC_ID_TRUEMOTION2, AV_CODEC_ID_BMP, AV_CODEC_ID_CSCD,
  AV_CODEC_ID_MMVIDEO, AV_CODEC_ID_ZMBV, AV_CODEC_ID_AVS, AV_CODEC_ID_SMACKVIDEO,
  AV_CODEC_ID_NUV, AV_CODEC_ID_KMVC, AV_CODEC_ID_FLASHSV, AV_CODEC_ID_CAVS,
  AV_CODEC_ID_JPEG2000, AV_CODEC_ID_VMNC, AV_CODEC_ID_VP5, AV_CODEC_ID_VP6,
  AV_CODEC_ID_VP6F, AV_CODEC_ID_TARGA, AV_CODEC_ID_DSICINVIDEO, AV_CODEC_ID_TIERTEXSEQVIDEO,
  AV_CODEC_ID_TIFF, AV_CODEC_ID_GIF, AV_CODEC_ID_DXA, AV_CODEC_ID_DNXHD,
  AV_CODEC_ID_THP, AV_CODEC_ID_SGI, AV_CODEC_ID_C93, AV_CODEC_ID_BETHSOFTVID,
  AV_CODEC_ID_PTX, AV_CODEC_ID_TXD, AV_CODEC_ID_VP6A, AV_CODEC_ID_AMV,
  AV_CODEC_ID_VB, AV_CODEC_ID_PCX, AV_CODEC_ID_SUNRAST, AV_CODEC_ID_INDEO4,
  AV_CODEC_ID_INDEO5, AV_CODEC_ID_MIMIC, AV_CODEC_ID_RL2, AV_CODEC_ID_ESCAPE124,
  AV_CODEC_ID_DIRAC, AV_CODEC_ID_BFI, AV_CODEC_ID_CMV, AV_CODEC_ID_MOTIONPIXELS,
  AV_CODEC_ID_TGV, AV_CODEC_ID_TGQ, AV_CODEC_ID_TQI, AV_CODEC_ID_AURA,
  AV_CODEC_ID_AURA2, AV_CODEC_ID_V210X, AV_CODEC_ID_TMV, AV_CODEC_ID_V210,
  AV_CODEC_ID_DPX, AV_CODEC_ID_MAD, AV_CODEC_ID_FRWU, AV_CODEC_ID_FLASHSV2,
  AV_CODEC_ID_CDGRAPHICS, AV_CODEC_ID_R210, AV_CODEC_ID_ANM, AV_CODEC_ID_BINKVIDEO,
  AV_CODEC_ID_IFF_ILBM, AV_CODEC_ID_KGV1, AV_CODEC_ID_YOP, AV_CODEC_ID_VP8,
  AV_CODEC_ID_PICTOR, AV_CODEC_ID_ANSI, AV_CODEC_ID_A64_MULTI, AV_CODEC_ID_A64_MULTI5,
  AV_CODEC_ID_R10K, AV_CODEC_ID_MXPEG, AV_CODEC_ID_LAGARITH, AV_CODEC_ID_PRORES,
  AV_CODEC_ID_JV, AV_CODEC_ID_DFA, AV_CODEC_ID_WMV3IMAGE, AV_CODEC_ID_VC1IMAGE,
  AV_CODEC_ID_UTVIDEO, AV_CODEC_ID_BMV_VIDEO, AV_CODEC_ID_VBLE, AV_CODEC_ID_DXTORY,
  AV_CODEC_ID_V410, AV_CODEC_ID_XWD, AV_CODEC_ID_CDXL, AV_CODEC_ID_XBM,
  AV_CODEC_ID_ZEROCODEC, AV_CODEC_ID_MSS1, AV_CODEC_ID_MSA1, AV_CODEC_ID_TSCC2,
  AV_CODEC_ID_MTS2, AV_CODEC_ID_CLLC, AV_CODEC_ID_MSS2, AV_CODEC_ID_VP9,
  AV_CODEC_ID_AIC, AV_CODEC_ID_ESCAPE130, AV_CODEC_ID_G2M, AV_CODEC_ID_WEBP,
  AV_CODEC_ID_HNM4_VIDEO, AV_CODEC_ID_HEVC, AV_CODEC_ID_FIC, AV_CODEC_ID_ALIAS_PIX,
  AV_CODEC_ID_BRENDER_PIX, AV_CODEC_ID_PAF_VIDEO, AV_CODEC_ID_EXR, AV_CODEC_ID_VP7,
  AV_CODEC_ID_SANM, AV_CODEC_ID_SGIRLE, AV_CODEC_ID_MVC1, AV_CODEC_ID_MVC2,
  AV_CODEC_ID_HQX, AV_CODEC_ID_TDSC, AV_CODEC_ID_HQ_HQA, AV_CODEC_ID_HAP,
  AV_CODEC_ID_DDS, AV_CODEC_ID_DXV, AV_CODEC_ID_SCREENPRESSO, AV_CODEC_ID_RSCC,
  AV_CODEC_ID_Y41P = 0x8000, AV_CODEC_ID_AVRP, AV_CODEC_ID_012V, AV_CODEC_ID_AVUI,
  AV_CODEC_ID_AYUV, AV_CODEC_ID_TARGA_Y216, AV_CODEC_ID_V308, AV_CODEC_ID_V408,
  AV_CODEC_ID_YUV4, AV_CODEC_ID_AVRN, AV_CODEC_ID_CPIA, AV_CODEC_ID_XFACE,
  AV_CODEC_ID_SNOW, AV_CODEC_ID_SMVJPEG, AV_CODEC_ID_APNG, AV_CODEC_ID_DAALA,
  AV_CODEC_ID_CFHD, AV_CODEC_ID_TRUEMOTION2RT, AV_CODEC_ID_M101, AV_CODEC_ID_MAGICYUV,
  AV_CODEC_ID_SHEERVIDEO, AV_CODEC_ID_YLC, AV_CODEC_ID_PSD, AV_CODEC_ID_PIXLET,
  AV_CODEC_ID_SPEEDHQ, AV_CODEC_ID_FMVC, AV_CODEC_ID_SCPR, AV_CODEC_ID_CLEARVIDEO,
  AV_CODEC_ID_XPM, AV_CODEC_ID_AV1, AV_CODEC_ID_BITPACKED, AV_CODEC_ID_MSCC,
  AV_CODEC_ID_SRGC, AV_CODEC_ID_SVG, AV_CODEC_ID_GDV, AV_CODEC_ID_FITS,
  AV_CODEC_ID_FIRST_AUDIO = 0x10000, AV_CODEC_ID_PCM_S16LE = 0x10000, AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_U16LE,
  AV_CODEC_ID_PCM_U16BE, AV_CODEC_ID_PCM_S8, AV_CODEC_ID_PCM_U8, AV_CODEC_ID_PCM_MULAW,
  AV_CODEC_ID_PCM_ALAW, AV_CODEC_ID_PCM_S32LE, AV_CODEC_ID_PCM_S32BE, AV_CODEC_ID_PCM_U32LE,
  AV_CODEC_ID_PCM_U32BE, AV_CODEC_ID_PCM_S24LE, AV_CODEC_ID_PCM_S24BE, AV_CODEC_ID_PCM_U24LE,
  AV_CODEC_ID_PCM_U24BE, AV_CODEC_ID_PCM_S24DAUD, AV_CODEC_ID_PCM_ZORK, AV_CODEC_ID_PCM_S16LE_PLANAR,
  AV_CODEC_ID_PCM_DVD, AV_CODEC_ID_PCM_F32BE, AV_CODEC_ID_PCM_F32LE, AV_CODEC_ID_PCM_F64BE,
  AV_CODEC_ID_PCM_F64LE, AV_CODEC_ID_PCM_BLURAY, AV_CODEC_ID_PCM_LXF, AV_CODEC_ID_S302M,
  AV_CODEC_ID_PCM_S8_PLANAR, AV_CODEC_ID_PCM_S24LE_PLANAR, AV_CODEC_ID_PCM_S32LE_PLANAR, AV_CODEC_ID_PCM_S16BE_PLANAR,
  AV_CODEC_ID_PCM_S64LE = 0x10800, AV_CODEC_ID_PCM_S64BE, AV_CODEC_ID_PCM_F16LE, AV_CODEC_ID_PCM_F24LE,
  AV_CODEC_ID_ADPCM_IMA_QT = 0x11000, AV_CODEC_ID_ADPCM_IMA_WAV, AV_CODEC_ID_ADPCM_IMA_DK3, AV_CODEC_ID_ADPCM_IMA_DK4,
  AV_CODEC_ID_ADPCM_IMA_WS, AV_CODEC_ID_ADPCM_IMA_SMJPEG, AV_CODEC_ID_ADPCM_MS, AV_CODEC_ID_ADPCM_4XM,
  AV_CODEC_ID_ADPCM_XA, AV_CODEC_ID_ADPCM_ADX, AV_CODEC_ID_ADPCM_EA, AV_CODEC_ID_ADPCM_G726,
  AV_CODEC_ID_ADPCM_CT, AV_CODEC_ID_ADPCM_SWF, AV_CODEC_ID_ADPCM_YAMAHA, AV_CODEC_ID_ADPCM_SBPRO_4,
  AV_CODEC_ID_ADPCM_SBPRO_3, AV_CODEC_ID_ADPCM_SBPRO_2, AV_CODEC_ID_ADPCM_THP, AV_CODEC_ID_ADPCM_IMA_AMV,
  AV_CODEC_ID_ADPCM_EA_R1, AV_CODEC_ID_ADPCM_EA_R3, AV_CODEC_ID_ADPCM_EA_R2, AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
  AV_CODEC_ID_ADPCM_IMA_EA_EACS, AV_CODEC_ID_ADPCM_EA_XAS, AV_CODEC_ID_ADPCM_EA_MAXIS_XA, AV_CODEC_ID_ADPCM_IMA_ISS,
  AV_CODEC_ID_ADPCM_G722, AV_CODEC_ID_ADPCM_IMA_APC, AV_CODEC_ID_ADPCM_VIMA, AV_CODEC_ID_ADPCM_AFC = 0x11800,
  AV_CODEC_ID_ADPCM_IMA_OKI, AV_CODEC_ID_ADPCM_DTK, AV_CODEC_ID_ADPCM_IMA_RAD, AV_CODEC_ID_ADPCM_G726LE,
  AV_CODEC_ID_ADPCM_THP_LE, AV_CODEC_ID_ADPCM_PSX, AV_CODEC_ID_ADPCM_AICA, AV_CODEC_ID_ADPCM_IMA_DAT4,
  AV_CODEC_ID_ADPCM_MTAF, AV_CODEC_ID_AMR_NB = 0x12000, AV_CODEC_ID_AMR_WB, AV_CODEC_ID_RA_144 = 0x13000,
  AV_CODEC_ID_RA_288, AV_CODEC_ID_ROQ_DPCM = 0x14000, AV_CODEC_ID_INTERPLAY_DPCM, AV_CODEC_ID_XAN_DPCM,
  AV_CODEC_ID_SOL_DPCM, AV_CODEC_ID_SDX2_DPCM = 0x14800, AV_CODEC_ID_GREMLIN_DPCM, AV_CODEC_ID_MP2 = 0x15000,
  AV_CODEC_ID_MP3, AV_CODEC_ID_AAC, AV_CODEC_ID_AC3, AV_CODEC_ID_DTS,
  AV_CODEC_ID_VORBIS, AV_CODEC_ID_DVAUDIO, AV_CODEC_ID_WMAV1, AV_CODEC_ID_WMAV2,
  AV_CODEC_ID_MACE3, AV_CODEC_ID_MACE6, AV_CODEC_ID_VMDAUDIO, AV_CODEC_ID_FLAC,
  AV_CODEC_ID_MP3ADU, AV_CODEC_ID_MP3ON4, AV_CODEC_ID_SHORTEN, AV_CODEC_ID_ALAC,
  AV_CODEC_ID_WESTWOOD_SND1, AV_CODEC_ID_GSM, AV_CODEC_ID_QDM2, AV_CODEC_ID_COOK,
  AV_CODEC_ID_TRUESPEECH, AV_CODEC_ID_TTA, AV_CODEC_ID_SMACKAUDIO, AV_CODEC_ID_QCELP,
  AV_CODEC_ID_WAVPACK, AV_CODEC_ID_DSICINAUDIO, AV_CODEC_ID_IMC, AV_CODEC_ID_MUSEPACK7,
  AV_CODEC_ID_MLP, AV_CODEC_ID_GSM_MS, AV_CODEC_ID_ATRAC3, AV_CODEC_ID_APE,
  AV_CODEC_ID_NELLYMOSER, AV_CODEC_ID_MUSEPACK8, AV_CODEC_ID_SPEEX, AV_CODEC_ID_WMAVOICE,
  AV_CODEC_ID_WMAPRO, AV_CODEC_ID_WMALOSSLESS, AV_CODEC_ID_ATRAC3P, AV_CODEC_ID_EAC3,
  AV_CODEC_ID_SIPR, AV_CODEC_ID_MP1, AV_CODEC_ID_TWINVQ, AV_CODEC_ID_TRUEHD,
  AV_CODEC_ID_MP4ALS, AV_CODEC_ID_ATRAC1, AV_CODEC_ID_BINKAUDIO_RDFT, AV_CODEC_ID_BINKAUDIO_DCT,
  AV_CODEC_ID_AAC_LATM, AV_CODEC_ID_QDMC, AV_CODEC_ID_CELT, AV_CODEC_ID_G723_1,
  AV_CODEC_ID_G729, AV_CODEC_ID_8SVX_EXP, AV_CODEC_ID_8SVX_FIB, AV_CODEC_ID_BMV_AUDIO,
  AV_CODEC_ID_RALF, AV_CODEC_ID_IAC, AV_CODEC_ID_ILBC, AV_CODEC_ID_OPUS,
  AV_CODEC_ID_COMFORT_NOISE, AV_CODEC_ID_TAK, AV_CODEC_ID_METASOUND, AV_CODEC_ID_PAF_AUDIO,
  AV_CODEC_ID_ON2AVC, AV_CODEC_ID_DSS_SP, AV_CODEC_ID_CODEC2, AV_CODEC_ID_FFWAVESYNTH = 0x15800,
  AV_CODEC_ID_SONIC, AV_CODEC_ID_SONIC_LS, AV_CODEC_ID_EVRC, AV_CODEC_ID_SMV,
  AV_CODEC_ID_DSD_LSBF, AV_CODEC_ID_DSD_MSBF, AV_CODEC_ID_DSD_LSBF_PLANAR, AV_CODEC_ID_DSD_MSBF_PLANAR,
  AV_CODEC_ID_4GV, AV_CODEC_ID_INTERPLAY_ACM, AV_CODEC_ID_XMA1, AV_CODEC_ID_XMA2,
  AV_CODEC_ID_DST, AV_CODEC_ID_ATRAC3AL, AV_CODEC_ID_ATRAC3PAL, AV_CODEC_ID_DOLBY_E,
  AV_CODEC_ID_APTX, AV_CODEC_ID_APTX_HD, AV_CODEC_ID_SBC, AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,
  AV_CODEC_ID_DVD_SUBTITLE = 0x17000, AV_CODEC_ID_DVB_SUBTITLE, AV_CODEC_ID_TEXT, AV_CODEC_ID_XSUB,
  AV_CODEC_ID_SSA, AV_CODEC_ID_MOV_TEXT, AV_CODEC_ID_HDMV_PGS_SUBTITLE, AV_CODEC_ID_DVB_TELETEXT,
  AV_CODEC_ID_SRT, AV_CODEC_ID_MICRODVD = 0x17800, AV_CODEC_ID_EIA_608, AV_CODEC_ID_JACOSUB,
  AV_CODEC_ID_SAMI, AV_CODEC_ID_REALTEXT, AV_CODEC_ID_STL, AV_CODEC_ID_SUBVIEWER1,
  AV_CODEC_ID_SUBVIEWER, AV_CODEC_ID_SUBRIP, AV_CODEC_ID_WEBVTT, AV_CODEC_ID_MPL2,
  AV_CODEC_ID_VPLAYER, AV_CODEC_ID_PJS, AV_CODEC_ID_ASS, AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
  AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, AV_CODEC_ID_TTF = 0x18000, AV_CODEC_ID_SCTE_35, AV_CODEC_ID_BINTEXT = 0x18800,
  AV_CODEC_ID_XBIN, AV_CODEC_ID_IDF, AV_CODEC_ID_OTF, AV_CODEC_ID_SMPTE_KLV,
  AV_CODEC_ID_DVD_NAV, AV_CODEC_ID_TIMED_ID3, AV_CODEC_ID_BIN_DATA, AV_CODEC_ID_PROBE = 0x19000,
  AV_CODEC_ID_MPEG2TS = 0x20000, AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, AV_CODEC_ID_FFMETADATA = 0x21000, AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001
}
 Identify the syntax and semantics of the bitstream. More...
 
enum  AVAudioServiceType {
  AV_AUDIO_SERVICE_TYPE_MAIN = 0, AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3,
  AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7,
  AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, AV_AUDIO_SERVICE_TYPE_NB
}
 
enum  AVFieldOrder {
  AV_FIELD_UNKNOWN, AV_FIELD_PROGRESSIVE, AV_FIELD_TT, AV_FIELD_BB,
  AV_FIELD_TB, AV_FIELD_BT
}
 
enum  { AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX = 0x01, AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX = 0x02, AV_CODEC_HW_CONFIG_METHOD_INTERNAL = 0x04, AV_CODEC_HW_CONFIG_METHOD_AD_HOC = 0x08 }
 
enum  AVSubtitleType { SUBTITLE_NONE, SUBTITLE_BITMAP, SUBTITLE_TEXT, SUBTITLE_ASS }
 

Functions

attribute_deprecated AVRational av_codec_get_pkt_timebase (const AVCodecContext *avctx)
 Accessors for some AVCodecContext fields. More...
 
attribute_deprecated void av_codec_set_pkt_timebase (AVCodecContext *avctx, AVRational val)
 
attribute_deprecated const AVCodecDescriptorav_codec_get_codec_descriptor (const AVCodecContext *avctx)
 
attribute_deprecated void av_codec_set_codec_descriptor (AVCodecContext *avctx, const AVCodecDescriptor *desc)
 
attribute_deprecated unsigned av_codec_get_codec_properties (const AVCodecContext *avctx)
 
attribute_deprecated int av_codec_get_lowres (const AVCodecContext *avctx)
 
attribute_deprecated void av_codec_set_lowres (AVCodecContext *avctx, int val)
 
attribute_deprecated int av_codec_get_seek_preroll (const AVCodecContext *avctx)
 
attribute_deprecated void av_codec_set_seek_preroll (AVCodecContext *avctx, int val)
 
attribute_deprecated uint16_t * av_codec_get_chroma_intra_matrix (const AVCodecContext *avctx)
 
attribute_deprecated void av_codec_set_chroma_intra_matrix (AVCodecContext *avctx, uint16_t *val)
 
attribute_deprecated int av_codec_get_max_lowres (const AVCodec *codec)
 
const AVCodecHWConfigavcodec_get_hw_config (const AVCodec *codec, int index)
 Retrieve supported hardware configurations for a codec. More...
 
const AVCodecav_codec_iterate (void **opaque)
 Iterate over all registered codecs. More...
 
attribute_deprecated AVCodecav_codec_next (const AVCodec *c)
 If c is NULL, returns the first registered codec, if c is non-NULL, returns the next registered codec after c, or NULL if c is the last one.
 
unsigned avcodec_version (void)
 Return the LIBAVCODEC_VERSION_INT constant.
 
const char * avcodec_configuration (void)
 Return the libavcodec build-time configuration.
 
const char * avcodec_license (void)
 Return the libavcodec license.
 
attribute_deprecated void avcodec_register (AVCodec *codec)
 Register the codec codec and initialize libavcodec. More...
 
attribute_deprecated void avcodec_register_all (void)
 Register all the codecs, parsers and bitstream filters which were enabled at configuration time. More...
 
AVCodecContextavcodec_alloc_context3 (const AVCodec *codec)
 Allocate an AVCodecContext and set its fields to default values. More...
 
void avcodec_free_context (AVCodecContext **avctx)
 Free the codec context and everything associated with it and write NULL to the provided pointer.
 
int avcodec_get_context_defaults3 (AVCodecContext *s, const AVCodec *codec)
 
const AVClassavcodec_get_class (void)
 Get the AVClass for AVCodecContext. More...
 
const AVClassavcodec_get_frame_class (void)
 Get the AVClass for AVFrame. More...
 
const AVClassavcodec_get_subtitle_rect_class (void)
 Get the AVClass for AVSubtitleRect. More...
 
attribute_deprecated int avcodec_copy_context (AVCodecContext *dest, const AVCodecContext *src)
 Copy the settings of the source AVCodecContext into the destination AVCodecContext. More...
 
AVCodecParametersavcodec_parameters_alloc (void)
 Allocate a new AVCodecParameters and set its fields to default values (unknown/invalid/0). More...
 
void avcodec_parameters_free (AVCodecParameters **par)
 Free an AVCodecParameters instance and everything associated with it and write NULL to the supplied pointer.
 
int avcodec_parameters_copy (AVCodecParameters *dst, const AVCodecParameters *src)
 Copy the contents of src to dst. More...
 
int avcodec_parameters_from_context (AVCodecParameters *par, const AVCodecContext *codec)
 Fill the parameters struct based on the values from the supplied codec context. More...
 
int avcodec_parameters_to_context (AVCodecContext *codec, const AVCodecParameters *par)
 Fill the codec context based on the values from the supplied codec parameters. More...
 
int avcodec_open2 (AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)
 Initialize the AVCodecContext to use the given AVCodec. More...
 
int avcodec_close (AVCodecContext *avctx)
 Close a given AVCodecContext and free all the data associated with it (but not the AVCodecContext itself). More...
 
void avsubtitle_free (AVSubtitle *sub)
 Free all allocated data in the given subtitle struct. More...
 

Detailed Description

Basic definitions, functions for querying libavcodec capabilities, allocating core structures, etc.

Macro Definition Documentation

§ AV_CODEC_CAP_AVOID_PROBING

#define AV_CODEC_CAP_AVOID_PROBING   (1 << 17)

Decoder is not a preferred choice for probing.

This indicates that the decoder is not a good choice for probing. It could for example be an expensive to spin up hardware decoder, or it could simply not provide a lot of useful information about the stream. A decoder marked with this flag should only be used as last resort choice for probing.

§ AV_CODEC_CAP_DELAY

#define AV_CODEC_CAP_DELAY   (1 << 5)

Encoder or decoder requires flushing with NULL input at the end in order to give the complete and correct output.

NOTE: If this flag is not set, the codec is guaranteed to never be fed with with NULL data. The user can still send NULL data to the public encode or decode function, but libavcodec will not pass it along to the codec unless this flag is set.

Decoders: The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, avpkt->size=0 at the end to get the delayed data until the decoder no longer returns frames.

Encoders: The encoder needs to be fed with NULL data at the end of encoding until the encoder no longer returns data.

NOTE: For encoders implementing the AVCodec.encode2() function, setting this flag also means that the encoder must set the pts and duration for each output packet. If this flag is not set, the pts and duration will be determined by libavcodec from the input frame.

§ AV_CODEC_CAP_DR1

#define AV_CODEC_CAP_DR1   (1 << 1)

Codec uses get_buffer() for allocating buffers and supports custom allocators.

If not set, it might not use get_buffer() at all or use operations that assume the buffer was allocated by avcodec_default_get_buffer.

§ AV_CODEC_CAP_HARDWARE

#define AV_CODEC_CAP_HARDWARE   (1 << 18)

Codec is backed by a hardware implementation.

Typically used to identify a non-hwaccel hardware decoder. For information about hwaccels, use avcodec_get_hw_config() instead.

§ AV_CODEC_CAP_HYBRID

#define AV_CODEC_CAP_HYBRID   (1 << 19)

Codec is potentially backed by a hardware implementation, but not necessarily.

This is used instead of AV_CODEC_CAP_HARDWARE, if the implementation provides some sort of internal fallback.

§ AV_CODEC_CAP_SMALL_LAST_FRAME

#define AV_CODEC_CAP_SMALL_LAST_FRAME   (1 << 6)

Codec can be fed a final frame with a smaller size.

This can be used to prevent truncation of the last audio samples.

§ AV_CODEC_CAP_SUBFRAMES

#define AV_CODEC_CAP_SUBFRAMES   (1 << 8)

Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time, demuxers which do not do are connected to a parser to split what they return into proper frames.

This flag is reserved to the very rare category of codecs which have a bitstream that cannot be split into frames without timeconsuming operations like full decoding. Demuxers carrying such bitstreams thus may return multiple frames in a packet. This has many disadvantages like prohibiting stream copy in many cases thus it should only be considered as a last resort.

§ AV_CODEC_FLAG2_DROP_FRAME_TIMECODE

#define AV_CODEC_FLAG2_DROP_FRAME_TIMECODE   (1 << 13)

timecode is in drop frame format.

DEPRECATED!!!!

§ AV_CODEC_FLAG_UNALIGNED

#define AV_CODEC_FLAG_UNALIGNED   (1 << 0)

Allow decoders to produce frames with data planes that are not aligned to CPU requirements (e.g.

due to cropping).

§ AV_CODEC_PROP_INTRA_ONLY

#define AV_CODEC_PROP_INTRA_ONLY   (1 << 0)

Codec uses only intra compression.

Video and audio codecs only.

§ AV_CODEC_PROP_LOSSLESS

#define AV_CODEC_PROP_LOSSLESS   (1 << 2)

Codec supports lossless compression.

Audio and video codecs only.

§ AV_CODEC_PROP_LOSSY

#define AV_CODEC_PROP_LOSSY   (1 << 1)

Codec supports lossy compression.

Audio and video codecs only.

Note
a codec may support both lossy and lossless compression modes

§ AV_CODEC_PROP_REORDER

#define AV_CODEC_PROP_REORDER   (1 << 3)

Codec supports frame reordering.

That is, the coded order (the order in which the encoded packets are output by the encoders / stored / input to the decoders) may be different from the presentation order of the corresponding frames.

For codecs that do not have this property set, PTS and DTS should always be equal.

§ AV_CODEC_PROP_TEXT_SUB

#define AV_CODEC_PROP_TEXT_SUB   (1 << 17)

Subtitle codec is text based.

Decoded AVSubtitle data can be read from the AVSubtitleRect->ass field.

Typedef Documentation

§ AVCodecContext

main external API structure.

New fields can be added to the end with minor version bumps. Removal, reordering and changes to existing fields require a major version bump. You can use AVOptions (av_opt* / av_set/get*()) to access these fields from user applications. The name string for AVOptions options matches the associated command line parameter name and can be found in libavcodec/options_table.h The AVOption/command line parameter names differ in some cases from the C structure field names for historic reasons or brevity. sizeof(AVCodecContext) must not be used outside libav*.

§ AVCodecDescriptor

This struct describes the properties of a single codec described by an AVCodecID.

See also
avcodec_descriptor_get()

§ AVCodecParameters

This struct describes the properties of an encoded stream.

sizeof(AVCodecParameters) is not a part of the public ABI, this struct must be allocated with avcodec_parameters_alloc() and freed with avcodec_parameters_free().

§ AVCPBProperties

This structure describes the bitrate properties of an encoded bitstream.

It roughly corresponds to a subset the VBV parameters for MPEG-2 or HRD parameters for H.264/HEVC.

§ AVPanScan

typedef struct AVPanScan AVPanScan

Pan Scan area.

This specifies the area which should be displayed. Note there may be multiple such areas for one frame.

Enumeration Type Documentation

§ anonymous enum

anonymous enum
Enumerator
AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX 

The codec supports this format via the hw_device_ctx interface.

When selecting this format, AVCodecContext.hw_device_ctx should have been set to a device of the specified type before calling avcodec_open2().

AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX 

The codec supports this format via the hw_frames_ctx interface.

When selecting this format for a decoder, AVCodecContext.hw_frames_ctx should be set to a suitable frames context inside the get_format() callback. The frames context must have been created on a device of the specified type.

AV_CODEC_HW_CONFIG_METHOD_INTERNAL 

The codec supports this format by some internal method.

This format can be selected without any additional configuration - no device or frames context is required.

AV_CODEC_HW_CONFIG_METHOD_AD_HOC 

The codec supports this format by some ad-hoc method.

Additional settings and/or function calls are required. See the codec-specific documentation for details. (Methods requiring this sort of configuration are deprecated and others should be used in preference.)

§ AVAudioServiceType

Enumerator
AV_AUDIO_SERVICE_TYPE_NB 

Not part of ABI.

§ AVCodecID

enum AVCodecID

Identify the syntax and semantics of the bitstream.

The principle is roughly: Two decoders with the same ID can decode the same streams. Two encoders with the same ID can encode compatible streams. There may be slight deviations from the principle due to implementation details.

If you add a codec ID to this list, add it so that

  1. no value of an existing codec ID changes (that would break ABI),
  2. it is as close as possible to similar codecs

After adding new codec IDs, do not forget to add an entry to the codec descriptor list and bump libavcodec minor version.

Enumerator
AV_CODEC_ID_MPEG2VIDEO 

preferred ID for MPEG-1/2 video decoding

AV_CODEC_ID_FIRST_AUDIO 

A dummy id pointing at the start of audio codecs.

AV_CODEC_ID_MP3 

preferred ID for decoding MPEG audio layer 1, 2 or 3

AV_CODEC_ID_GSM 

as in Berlin toast format

AV_CODEC_ID_FIRST_SUBTITLE 

A dummy ID pointing at the start of subtitle codecs.

AV_CODEC_ID_TEXT 

raw UTF-8 text

AV_CODEC_ID_FIRST_UNKNOWN 

A dummy ID pointing at the start of various fake codecs.

AV_CODEC_ID_SCTE_35 

Contain timestamp estimated through PCR of program stream.

AV_CODEC_ID_PROBE 

codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it

AV_CODEC_ID_MPEG2TS 

FAKE codec to indicate a raw MPEG-2 TS stream (only used by libavformat)

AV_CODEC_ID_MPEG4SYSTEMS 

FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)

AV_CODEC_ID_FFMETADATA 

Dummy codec for streams containing only metadata information.

AV_CODEC_ID_WRAPPED_AVFRAME 

Passthrough codec, AVFrames wrapped in AVPacket.

§ AVSubtitleType

Enumerator
SUBTITLE_BITMAP 

A bitmap, pict will be set.

SUBTITLE_TEXT 

Plain text, the text field must be set by the decoder and is authoritative.

ass and pict fields may contain approximations.

SUBTITLE_ASS 

Formatted text, the ass field must be set by the decoder and is authoritative.

pict and text fields may contain approximations.

Function Documentation

§ av_codec_get_pkt_timebase()

attribute_deprecated AVRational av_codec_get_pkt_timebase ( const AVCodecContext avctx)

Accessors for some AVCodecContext fields.

These used to be provided for ABI compatibility, and do not need to be used anymore.

§ av_codec_iterate()

const AVCodec* av_codec_iterate ( void **  opaque)

Iterate over all registered codecs.

Parameters
opaquea pointer where libavcodec will store the iteration state. Must point to NULL to start the iteration.
Returns
the next registered codec or NULL when the iteration is finished

§ avcodec_alloc_context3()

AVCodecContext* avcodec_alloc_context3 ( const AVCodec codec)

Allocate an AVCodecContext and set its fields to default values.

The resulting struct should be freed with avcodec_free_context().

Parameters
codecif non-NULL, allocate private data and initialize defaults for the given codec. It is illegal to then call avcodec_open2() with a different codec. If NULL, then the codec-specific defaults won't be initialized, which may result in suboptimal default settings (this is important mainly for encoders, e.g. libx264).
Returns
An AVCodecContext filled with default values or NULL on failure.

§ avcodec_close()

int avcodec_close ( AVCodecContext avctx)

Close a given AVCodecContext and free all the data associated with it (but not the AVCodecContext itself).

Calling this function on an AVCodecContext that hasn't been opened will free the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL codec. Subsequent calls will do nothing.

Note
Do not use this function. Use avcodec_free_context() to destroy a codec context (either open or closed). Opening and closing a codec context multiple times is not supported anymore – use multiple codec contexts instead.

§ avcodec_copy_context()

attribute_deprecated int avcodec_copy_context ( AVCodecContext dest,
const AVCodecContext src 
)

Copy the settings of the source AVCodecContext into the destination AVCodecContext.

The resulting destination codec context will be unopened, i.e. you are required to call avcodec_open2() before you can use this AVCodecContext to decode/encode video/audio data.

Parameters
desttarget codec context, should be initialized with avcodec_alloc_context3(NULL), but otherwise uninitialized
srcsource codec context
Returns
AVERROR() on error (e.g. memory allocation error), 0 on success
Deprecated:
The semantics of this function are ill-defined and it should not be used. If you need to transfer the stream parameters from one codec context to another, use an intermediate AVCodecParameters instance and the avcodec_parameters_from_context() / avcodec_parameters_to_context() functions.

§ avcodec_get_class()

const AVClass* avcodec_get_class ( void  )

Get the AVClass for AVCodecContext.

It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

See also
av_opt_find().

§ avcodec_get_context_defaults3()

int avcodec_get_context_defaults3 ( AVCodecContext s,
const AVCodec codec 
)
Deprecated:
This function should not be used, as closing and opening a codec context multiple time is not supported.

A new codec context should be allocated for each new use.

§ avcodec_get_frame_class()

const AVClass* avcodec_get_frame_class ( void  )

Get the AVClass for AVFrame.

It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

See also
av_opt_find().

§ avcodec_get_hw_config()

const AVCodecHWConfig* avcodec_get_hw_config ( const AVCodec codec,
int  index 
)

Retrieve supported hardware configurations for a codec.

Values of index from zero to some maximum return the indexed configuration descriptor; all other values return NULL. If the codec does not support any hardware configurations then it will always return NULL.

§ avcodec_get_subtitle_rect_class()

const AVClass* avcodec_get_subtitle_rect_class ( void  )

Get the AVClass for AVSubtitleRect.

It can be used in combination with AV_OPT_SEARCH_FAKE_OBJ for examining options.

See also
av_opt_find().

§ avcodec_open2()

int avcodec_open2 ( AVCodecContext avctx,
const AVCodec codec,
AVDictionary **  options 
)

Initialize the AVCodecContext to use the given AVCodec.

Prior to using this function the context has to be allocated with avcodec_alloc_context3().

The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for retrieving a codec.

Warning
This function is not thread safe!
Note
Always call this function before using decoding routines (such as avcodec_receive_frame()).
av_dict_set(&opts, "b", "2.5M", 0);
codec = avcodec_find_decoder(AV_CODEC_ID_H264);
if (!codec)
exit(1);
context = avcodec_alloc_context3(codec);
if (avcodec_open2(context, codec, opts) < 0)
exit(1);
Parameters
avctxThe context to initialize.
codecThe codec to open this context for. If a non-NULL codec has been previously passed to avcodec_alloc_context3() or for this context, then this parameter MUST be either NULL or equal to the previously passed codec.
optionsA dictionary filled with AVCodecContext and codec-private options. On return this object will be filled with options that were not found.
Returns
zero on success, a negative value on error
See also
avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(), av_dict_set(), av_opt_find().

§ avcodec_parameters_alloc()

AVCodecParameters* avcodec_parameters_alloc ( void  )

Allocate a new AVCodecParameters and set its fields to default values (unknown/invalid/0).

The returned struct must be freed with avcodec_parameters_free().

§ avcodec_parameters_copy()

int avcodec_parameters_copy ( AVCodecParameters dst,
const AVCodecParameters src 
)

Copy the contents of src to dst.

Any allocated fields in dst are freed and replaced with newly allocated duplicates of the corresponding fields in src.

Returns
>= 0 on success, a negative AVERROR code on failure.

§ avcodec_parameters_from_context()

int avcodec_parameters_from_context ( AVCodecParameters par,
const AVCodecContext codec 
)

Fill the parameters struct based on the values from the supplied codec context.

Any allocated fields in par are freed and replaced with duplicates of the corresponding fields in codec.

Returns
>= 0 on success, a negative AVERROR code on failure

§ avcodec_parameters_to_context()

int avcodec_parameters_to_context ( AVCodecContext codec,
const AVCodecParameters par 
)

Fill the codec context based on the values from the supplied codec parameters.

Any allocated fields in codec that have a corresponding field in par are freed and replaced with duplicates of the corresponding field in par. Fields in codec that do not have a counterpart in par are not touched.

Returns
>= 0 on success, a negative AVERROR code on failure.

§ avcodec_register()

attribute_deprecated void avcodec_register ( AVCodec codec)

Register the codec codec and initialize libavcodec.

Warning
either this function or avcodec_register_all() must be called before any other libavcodec functions.
See also
avcodec_register_all()

§ avcodec_register_all()

attribute_deprecated void avcodec_register_all ( void  )

Register all the codecs, parsers and bitstream filters which were enabled at configuration time.

If you do not call this function you can select exactly which formats you want to support, by using the individual registration functions.

See also
avcodec_register
av_register_codec_parser
av_register_bitstream_filter

§ avsubtitle_free()

void avsubtitle_free ( AVSubtitle sub)

Free all allocated data in the given subtitle struct.

Parameters
subAVSubtitle to free.