5151 lines · 172.6 KB · C
RawDownload
/* * copyright (c) 2001 Fabrice Bellard * * This file is part of FFmpeg. * * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef AVCODEC_AVCODEC_H#define AVCODEC_AVCODEC_H /** * @file * @ingroup libavc * Libavcodec external API header */ #include <errno.h>#include "libavutil/samplefmt.h"#include "libavutil/attributes.h"#include "libavutil/avutil.h"#include "libavutil/buffer.h"#include "libavutil/cpu.h"#include "libavutil/channel_layout.h"#include "libavutil/dict.h"#include "libavutil/frame.h"#include "libavutil/log.h"#include "libavutil/pixfmt.h"#include "libavutil/rational.h" #include "version.h" #if FF_API_FAST_MALLOC// to provide fast_*alloc#include "libavutil/mem.h"#endif /** * @defgroup libavc Encoding/Decoding Library * @{ * * @defgroup lavc_decoding Decoding * @{ * @} * * @defgroup lavc_encoding Encoding * @{ * @} * * @defgroup lavc_codec Codecs * @{ * @defgroup lavc_codec_native Native Codecs * @{ * @} * @defgroup lavc_codec_wrappers External library wrappers * @{ * @} * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge * @{ * @} * @} * @defgroup lavc_internal Internal * @{ * @} * @} * */ /** * @defgroup lavc_core Core functions/structures. * @ingroup libavc * * Basic definitions, functions for querying libavcodec capabilities, * allocating core structures, etc. * @{ */  /** * 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 a existing codec ID changes (that would break ABI), * 2. Give it a value which when taken as ASCII is recognized uniquely by a human as this specific codec. *    This ensures that 2 forks can independently add AVCodecIDs without producing conflicts. * * After adding new codec IDs, do not forget to add an entry to the codec * descriptor list and bump libavcodec minor version. */enum AVCodecID {    AV_CODEC_ID_NONE,     /* video codecs */    AV_CODEC_ID_MPEG1VIDEO,    AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding#if FF_API_XVMC    AV_CODEC_ID_MPEG2VIDEO_XVMC,#endif /* FF_API_XVMC */    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_IFF_BYTERUN1,    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_DEPRECATED,    AV_CODEC_ID_G2M_DEPRECATED,    AV_CODEC_ID_WEBP_DEPRECATED,    AV_CODEC_ID_HNM4_VIDEO,    AV_CODEC_ID_HEVC_DEPRECATED,    AV_CODEC_ID_FIC,    AV_CODEC_ID_ALIAS_PIX,    AV_CODEC_ID_BRENDER_PIX_DEPRECATED,    AV_CODEC_ID_PAF_VIDEO_DEPRECATED,    AV_CODEC_ID_EXR_DEPRECATED,    AV_CODEC_ID_VP7_DEPRECATED,    AV_CODEC_ID_SANM_DEPRECATED,    AV_CODEC_ID_SGIRLE_DEPRECATED,    AV_CODEC_ID_MVC1_DEPRECATED,    AV_CODEC_ID_MVC2_DEPRECATED,     AV_CODEC_ID_BRENDER_PIX= MKBETAG('B','P','I','X'),    AV_CODEC_ID_Y41P       = MKBETAG('Y','4','1','P'),    AV_CODEC_ID_ESCAPE130  = MKBETAG('E','1','3','0'),    AV_CODEC_ID_EXR        = MKBETAG('0','E','X','R'),    AV_CODEC_ID_AVRP       = MKBETAG('A','V','R','P'),     AV_CODEC_ID_012V       = MKBETAG('0','1','2','V'),    AV_CODEC_ID_G2M        = MKBETAG( 0 ,'G','2','M'),    AV_CODEC_ID_AVUI       = MKBETAG('A','V','U','I'),    AV_CODEC_ID_AYUV       = MKBETAG('A','Y','U','V'),    AV_CODEC_ID_TARGA_Y216 = MKBETAG('T','2','1','6'),    AV_CODEC_ID_V308       = MKBETAG('V','3','0','8'),    AV_CODEC_ID_V408       = MKBETAG('V','4','0','8'),    AV_CODEC_ID_YUV4       = MKBETAG('Y','U','V','4'),    AV_CODEC_ID_SANM       = MKBETAG('S','A','N','M'),    AV_CODEC_ID_PAF_VIDEO  = MKBETAG('P','A','F','V'),    AV_CODEC_ID_AVRN       = MKBETAG('A','V','R','n'),    AV_CODEC_ID_CPIA       = MKBETAG('C','P','I','A'),    AV_CODEC_ID_XFACE      = MKBETAG('X','F','A','C'),    AV_CODEC_ID_SGIRLE     = MKBETAG('S','G','I','R'),    AV_CODEC_ID_MVC1       = MKBETAG('M','V','C','1'),    AV_CODEC_ID_MVC2       = MKBETAG('M','V','C','2'),    AV_CODEC_ID_SNOW       = MKBETAG('S','N','O','W'),    AV_CODEC_ID_WEBP       = MKBETAG('W','E','B','P'),    AV_CODEC_ID_SMVJPEG    = MKBETAG('S','M','V','J'),    AV_CODEC_ID_HEVC       = MKBETAG('H','2','6','5'),#define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC    AV_CODEC_ID_VP7        = MKBETAG('V','P','7','0'),     /* various PCM "codecs" */    AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs    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_DEPRECATED,    AV_CODEC_ID_PCM_S32LE_PLANAR_DEPRECATED,    AV_CODEC_ID_PCM_S24LE_PLANAR = MKBETAG(24,'P','S','P'),    AV_CODEC_ID_PCM_S32LE_PLANAR = MKBETAG(32,'P','S','P'),    AV_CODEC_ID_PCM_S16BE_PLANAR = MKBETAG('P','S','P',16),     /* various ADPCM codecs */    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_DEPRECATED,    AV_CODEC_ID_ADPCM_VIMA = MKBETAG('V','I','M','A'),    AV_CODEC_ID_VIMA       = MKBETAG('V','I','M','A'),    AV_CODEC_ID_ADPCM_AFC  = MKBETAG('A','F','C',' '),    AV_CODEC_ID_ADPCM_IMA_OKI = MKBETAG('O','K','I',' '),    AV_CODEC_ID_ADPCM_DTK  = MKBETAG('D','T','K',' '),    AV_CODEC_ID_ADPCM_IMA_RAD = MKBETAG('R','A','D',' '),    AV_CODEC_ID_ADPCM_G726LE = MKBETAG('6','2','7','G'),     /* AMR */    AV_CODEC_ID_AMR_NB = 0x12000,    AV_CODEC_ID_AMR_WB,     /* RealAudio codecs*/    AV_CODEC_ID_RA_144 = 0x13000,    AV_CODEC_ID_RA_288,     /* various DPCM codecs */    AV_CODEC_ID_ROQ_DPCM = 0x14000,    AV_CODEC_ID_INTERPLAY_DPCM,    AV_CODEC_ID_XAN_DPCM,    AV_CODEC_ID_SOL_DPCM,     /* audio codecs */    AV_CODEC_ID_MP2 = 0x15000,    AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3    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, ///< as in Berlin toast format    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, /* as found in WAV */    AV_CODEC_ID_ATRAC3,#if FF_API_VOXWARE    AV_CODEC_ID_VOXWARE,#endif    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_DEPRECATED,    AV_CODEC_ID_COMFORT_NOISE,    AV_CODEC_ID_TAK_DEPRECATED,    AV_CODEC_ID_METASOUND,    AV_CODEC_ID_PAF_AUDIO_DEPRECATED,    AV_CODEC_ID_ON2AVC,    AV_CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'),    AV_CODEC_ID_SONIC       = MKBETAG('S','O','N','C'),    AV_CODEC_ID_SONIC_LS    = MKBETAG('S','O','N','L'),    AV_CODEC_ID_PAF_AUDIO   = MKBETAG('P','A','F','A'),    AV_CODEC_ID_OPUS        = MKBETAG('O','P','U','S'),    AV_CODEC_ID_TAK         = MKBETAG('t','B','a','K'),    AV_CODEC_ID_EVRC        = MKBETAG('s','e','v','c'),    AV_CODEC_ID_SMV         = MKBETAG('s','s','m','v'),    AV_CODEC_ID_DSD_LSBF    = MKBETAG('D','S','D','L'),    AV_CODEC_ID_DSD_MSBF    = MKBETAG('D','S','D','M'),    AV_CODEC_ID_DSD_LSBF_PLANAR = MKBETAG('D','S','D','1'),    AV_CODEC_ID_DSD_MSBF_PLANAR = MKBETAG('D','S','D','8'), 

Lines 1–500 of 5151.

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t