Imported Upstream version 6.1
[platform/upstream/ffmpeg.git] / libavcodec / codec_id.h
1 /*
2  * Codec IDs
3  *
4  * This file is part of FFmpeg.
5  *
6  * FFmpeg is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * FFmpeg is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with FFmpeg; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19  */
20
21 #ifndef AVCODEC_CODEC_ID_H
22 #define AVCODEC_CODEC_ID_H
23
24 #include "libavutil/avutil.h"
25 #include "libavutil/samplefmt.h"
26
27 #include "version_major.h"
28
29 /**
30  * @addtogroup lavc_core
31  * @{
32  */
33
34 /**
35  * Identify the syntax and semantics of the bitstream.
36  * The principle is roughly:
37  * Two decoders with the same ID can decode the same streams.
38  * Two encoders with the same ID can encode compatible streams.
39  * There may be slight deviations from the principle due to implementation
40  * details.
41  *
42  * If you add a codec ID to this list, add it so that
43  * 1. no value of an existing codec ID changes (that would break ABI),
44  * 2. it is as close as possible to similar codecs
45  *
46  * After adding new codec IDs, do not forget to add an entry to the codec
47  * descriptor list and bump libavcodec minor version.
48  */
49 enum AVCodecID {
50     AV_CODEC_ID_NONE,
51
52     /* video codecs */
53     AV_CODEC_ID_MPEG1VIDEO,
54     AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
55     AV_CODEC_ID_H261,
56     AV_CODEC_ID_H263,
57     AV_CODEC_ID_RV10,
58     AV_CODEC_ID_RV20,
59     AV_CODEC_ID_MJPEG,
60     AV_CODEC_ID_MJPEGB,
61     AV_CODEC_ID_LJPEG,
62     AV_CODEC_ID_SP5X,
63     AV_CODEC_ID_JPEGLS,
64     AV_CODEC_ID_MPEG4,
65     AV_CODEC_ID_RAWVIDEO,
66     AV_CODEC_ID_MSMPEG4V1,
67     AV_CODEC_ID_MSMPEG4V2,
68     AV_CODEC_ID_MSMPEG4V3,
69     AV_CODEC_ID_WMV1,
70     AV_CODEC_ID_WMV2,
71     AV_CODEC_ID_H263P,
72     AV_CODEC_ID_H263I,
73     AV_CODEC_ID_FLV1,
74     AV_CODEC_ID_SVQ1,
75     AV_CODEC_ID_SVQ3,
76     AV_CODEC_ID_DVVIDEO,
77     AV_CODEC_ID_HUFFYUV,
78     AV_CODEC_ID_CYUV,
79     AV_CODEC_ID_H264,
80     AV_CODEC_ID_INDEO3,
81     AV_CODEC_ID_VP3,
82     AV_CODEC_ID_THEORA,
83     AV_CODEC_ID_ASV1,
84     AV_CODEC_ID_ASV2,
85     AV_CODEC_ID_FFV1,
86     AV_CODEC_ID_4XM,
87     AV_CODEC_ID_VCR1,
88     AV_CODEC_ID_CLJR,
89     AV_CODEC_ID_MDEC,
90     AV_CODEC_ID_ROQ,
91     AV_CODEC_ID_INTERPLAY_VIDEO,
92     AV_CODEC_ID_XAN_WC3,
93     AV_CODEC_ID_XAN_WC4,
94     AV_CODEC_ID_RPZA,
95     AV_CODEC_ID_CINEPAK,
96     AV_CODEC_ID_WS_VQA,
97     AV_CODEC_ID_MSRLE,
98     AV_CODEC_ID_MSVIDEO1,
99     AV_CODEC_ID_IDCIN,
100     AV_CODEC_ID_8BPS,
101     AV_CODEC_ID_SMC,
102     AV_CODEC_ID_FLIC,
103     AV_CODEC_ID_TRUEMOTION1,
104     AV_CODEC_ID_VMDVIDEO,
105     AV_CODEC_ID_MSZH,
106     AV_CODEC_ID_ZLIB,
107     AV_CODEC_ID_QTRLE,
108     AV_CODEC_ID_TSCC,
109     AV_CODEC_ID_ULTI,
110     AV_CODEC_ID_QDRAW,
111     AV_CODEC_ID_VIXL,
112     AV_CODEC_ID_QPEG,
113     AV_CODEC_ID_PNG,
114     AV_CODEC_ID_PPM,
115     AV_CODEC_ID_PBM,
116     AV_CODEC_ID_PGM,
117     AV_CODEC_ID_PGMYUV,
118     AV_CODEC_ID_PAM,
119     AV_CODEC_ID_FFVHUFF,
120     AV_CODEC_ID_RV30,
121     AV_CODEC_ID_RV40,
122     AV_CODEC_ID_VC1,
123     AV_CODEC_ID_WMV3,
124     AV_CODEC_ID_LOCO,
125     AV_CODEC_ID_WNV1,
126     AV_CODEC_ID_AASC,
127     AV_CODEC_ID_INDEO2,
128     AV_CODEC_ID_FRAPS,
129     AV_CODEC_ID_TRUEMOTION2,
130     AV_CODEC_ID_BMP,
131     AV_CODEC_ID_CSCD,
132     AV_CODEC_ID_MMVIDEO,
133     AV_CODEC_ID_ZMBV,
134     AV_CODEC_ID_AVS,
135     AV_CODEC_ID_SMACKVIDEO,
136     AV_CODEC_ID_NUV,
137     AV_CODEC_ID_KMVC,
138     AV_CODEC_ID_FLASHSV,
139     AV_CODEC_ID_CAVS,
140     AV_CODEC_ID_JPEG2000,
141     AV_CODEC_ID_VMNC,
142     AV_CODEC_ID_VP5,
143     AV_CODEC_ID_VP6,
144     AV_CODEC_ID_VP6F,
145     AV_CODEC_ID_TARGA,
146     AV_CODEC_ID_DSICINVIDEO,
147     AV_CODEC_ID_TIERTEXSEQVIDEO,
148     AV_CODEC_ID_TIFF,
149     AV_CODEC_ID_GIF,
150     AV_CODEC_ID_DXA,
151     AV_CODEC_ID_DNXHD,
152     AV_CODEC_ID_THP,
153     AV_CODEC_ID_SGI,
154     AV_CODEC_ID_C93,
155     AV_CODEC_ID_BETHSOFTVID,
156     AV_CODEC_ID_PTX,
157     AV_CODEC_ID_TXD,
158     AV_CODEC_ID_VP6A,
159     AV_CODEC_ID_AMV,
160     AV_CODEC_ID_VB,
161     AV_CODEC_ID_PCX,
162     AV_CODEC_ID_SUNRAST,
163     AV_CODEC_ID_INDEO4,
164     AV_CODEC_ID_INDEO5,
165     AV_CODEC_ID_MIMIC,
166     AV_CODEC_ID_RL2,
167     AV_CODEC_ID_ESCAPE124,
168     AV_CODEC_ID_DIRAC,
169     AV_CODEC_ID_BFI,
170     AV_CODEC_ID_CMV,
171     AV_CODEC_ID_MOTIONPIXELS,
172     AV_CODEC_ID_TGV,
173     AV_CODEC_ID_TGQ,
174     AV_CODEC_ID_TQI,
175     AV_CODEC_ID_AURA,
176     AV_CODEC_ID_AURA2,
177     AV_CODEC_ID_V210X,
178     AV_CODEC_ID_TMV,
179     AV_CODEC_ID_V210,
180     AV_CODEC_ID_DPX,
181     AV_CODEC_ID_MAD,
182     AV_CODEC_ID_FRWU,
183     AV_CODEC_ID_FLASHSV2,
184     AV_CODEC_ID_CDGRAPHICS,
185     AV_CODEC_ID_R210,
186     AV_CODEC_ID_ANM,
187     AV_CODEC_ID_BINKVIDEO,
188     AV_CODEC_ID_IFF_ILBM,
189 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
190     AV_CODEC_ID_KGV1,
191     AV_CODEC_ID_YOP,
192     AV_CODEC_ID_VP8,
193     AV_CODEC_ID_PICTOR,
194     AV_CODEC_ID_ANSI,
195     AV_CODEC_ID_A64_MULTI,
196     AV_CODEC_ID_A64_MULTI5,
197     AV_CODEC_ID_R10K,
198     AV_CODEC_ID_MXPEG,
199     AV_CODEC_ID_LAGARITH,
200     AV_CODEC_ID_PRORES,
201     AV_CODEC_ID_JV,
202     AV_CODEC_ID_DFA,
203     AV_CODEC_ID_WMV3IMAGE,
204     AV_CODEC_ID_VC1IMAGE,
205     AV_CODEC_ID_UTVIDEO,
206     AV_CODEC_ID_BMV_VIDEO,
207     AV_CODEC_ID_VBLE,
208     AV_CODEC_ID_DXTORY,
209     AV_CODEC_ID_V410,
210     AV_CODEC_ID_XWD,
211     AV_CODEC_ID_CDXL,
212     AV_CODEC_ID_XBM,
213     AV_CODEC_ID_ZEROCODEC,
214     AV_CODEC_ID_MSS1,
215     AV_CODEC_ID_MSA1,
216     AV_CODEC_ID_TSCC2,
217     AV_CODEC_ID_MTS2,
218     AV_CODEC_ID_CLLC,
219     AV_CODEC_ID_MSS2,
220     AV_CODEC_ID_VP9,
221     AV_CODEC_ID_AIC,
222     AV_CODEC_ID_ESCAPE130,
223     AV_CODEC_ID_G2M,
224     AV_CODEC_ID_WEBP,
225     AV_CODEC_ID_HNM4_VIDEO,
226     AV_CODEC_ID_HEVC,
227 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
228     AV_CODEC_ID_FIC,
229     AV_CODEC_ID_ALIAS_PIX,
230     AV_CODEC_ID_BRENDER_PIX,
231     AV_CODEC_ID_PAF_VIDEO,
232     AV_CODEC_ID_EXR,
233     AV_CODEC_ID_VP7,
234     AV_CODEC_ID_SANM,
235     AV_CODEC_ID_SGIRLE,
236     AV_CODEC_ID_MVC1,
237     AV_CODEC_ID_MVC2,
238     AV_CODEC_ID_HQX,
239     AV_CODEC_ID_TDSC,
240     AV_CODEC_ID_HQ_HQA,
241     AV_CODEC_ID_HAP,
242     AV_CODEC_ID_DDS,
243     AV_CODEC_ID_DXV,
244     AV_CODEC_ID_SCREENPRESSO,
245     AV_CODEC_ID_RSCC,
246     AV_CODEC_ID_AVS2,
247     AV_CODEC_ID_PGX,
248     AV_CODEC_ID_AVS3,
249     AV_CODEC_ID_MSP2,
250     AV_CODEC_ID_VVC,
251 #define AV_CODEC_ID_H266 AV_CODEC_ID_VVC
252     AV_CODEC_ID_Y41P,
253     AV_CODEC_ID_AVRP,
254     AV_CODEC_ID_012V,
255     AV_CODEC_ID_AVUI,
256 #if FF_API_AYUV_CODECID
257     AV_CODEC_ID_AYUV,
258 #endif
259     AV_CODEC_ID_TARGA_Y216,
260     AV_CODEC_ID_V308,
261     AV_CODEC_ID_V408,
262     AV_CODEC_ID_YUV4,
263     AV_CODEC_ID_AVRN,
264     AV_CODEC_ID_CPIA,
265     AV_CODEC_ID_XFACE,
266     AV_CODEC_ID_SNOW,
267     AV_CODEC_ID_SMVJPEG,
268     AV_CODEC_ID_APNG,
269     AV_CODEC_ID_DAALA,
270     AV_CODEC_ID_CFHD,
271     AV_CODEC_ID_TRUEMOTION2RT,
272     AV_CODEC_ID_M101,
273     AV_CODEC_ID_MAGICYUV,
274     AV_CODEC_ID_SHEERVIDEO,
275     AV_CODEC_ID_YLC,
276     AV_CODEC_ID_PSD,
277     AV_CODEC_ID_PIXLET,
278     AV_CODEC_ID_SPEEDHQ,
279     AV_CODEC_ID_FMVC,
280     AV_CODEC_ID_SCPR,
281     AV_CODEC_ID_CLEARVIDEO,
282     AV_CODEC_ID_XPM,
283     AV_CODEC_ID_AV1,
284     AV_CODEC_ID_BITPACKED,
285     AV_CODEC_ID_MSCC,
286     AV_CODEC_ID_SRGC,
287     AV_CODEC_ID_SVG,
288     AV_CODEC_ID_GDV,
289     AV_CODEC_ID_FITS,
290     AV_CODEC_ID_IMM4,
291     AV_CODEC_ID_PROSUMER,
292     AV_CODEC_ID_MWSC,
293     AV_CODEC_ID_WCMV,
294     AV_CODEC_ID_RASC,
295     AV_CODEC_ID_HYMT,
296     AV_CODEC_ID_ARBC,
297     AV_CODEC_ID_AGM,
298     AV_CODEC_ID_LSCR,
299     AV_CODEC_ID_VP4,
300     AV_CODEC_ID_IMM5,
301     AV_CODEC_ID_MVDV,
302     AV_CODEC_ID_MVHA,
303     AV_CODEC_ID_CDTOONS,
304     AV_CODEC_ID_MV30,
305     AV_CODEC_ID_NOTCHLC,
306     AV_CODEC_ID_PFM,
307     AV_CODEC_ID_MOBICLIP,
308     AV_CODEC_ID_PHOTOCD,
309     AV_CODEC_ID_IPU,
310     AV_CODEC_ID_ARGO,
311     AV_CODEC_ID_CRI,
312     AV_CODEC_ID_SIMBIOSIS_IMX,
313     AV_CODEC_ID_SGA_VIDEO,
314     AV_CODEC_ID_GEM,
315     AV_CODEC_ID_VBN,
316     AV_CODEC_ID_JPEGXL,
317     AV_CODEC_ID_QOI,
318     AV_CODEC_ID_PHM,
319     AV_CODEC_ID_RADIANCE_HDR,
320     AV_CODEC_ID_WBMP,
321     AV_CODEC_ID_MEDIA100,
322     AV_CODEC_ID_VQC,
323     AV_CODEC_ID_PDV,
324     AV_CODEC_ID_EVC,
325     AV_CODEC_ID_RTV1,
326     AV_CODEC_ID_VMIX,
327
328     /* various PCM "codecs" */
329     AV_CODEC_ID_FIRST_AUDIO = 0x10000,     ///< A dummy id pointing at the start of audio codecs
330     AV_CODEC_ID_PCM_S16LE = 0x10000,
331     AV_CODEC_ID_PCM_S16BE,
332     AV_CODEC_ID_PCM_U16LE,
333     AV_CODEC_ID_PCM_U16BE,
334     AV_CODEC_ID_PCM_S8,
335     AV_CODEC_ID_PCM_U8,
336     AV_CODEC_ID_PCM_MULAW,
337     AV_CODEC_ID_PCM_ALAW,
338     AV_CODEC_ID_PCM_S32LE,
339     AV_CODEC_ID_PCM_S32BE,
340     AV_CODEC_ID_PCM_U32LE,
341     AV_CODEC_ID_PCM_U32BE,
342     AV_CODEC_ID_PCM_S24LE,
343     AV_CODEC_ID_PCM_S24BE,
344     AV_CODEC_ID_PCM_U24LE,
345     AV_CODEC_ID_PCM_U24BE,
346     AV_CODEC_ID_PCM_S24DAUD,
347     AV_CODEC_ID_PCM_ZORK,
348     AV_CODEC_ID_PCM_S16LE_PLANAR,
349     AV_CODEC_ID_PCM_DVD,
350     AV_CODEC_ID_PCM_F32BE,
351     AV_CODEC_ID_PCM_F32LE,
352     AV_CODEC_ID_PCM_F64BE,
353     AV_CODEC_ID_PCM_F64LE,
354     AV_CODEC_ID_PCM_BLURAY,
355     AV_CODEC_ID_PCM_LXF,
356     AV_CODEC_ID_S302M,
357     AV_CODEC_ID_PCM_S8_PLANAR,
358     AV_CODEC_ID_PCM_S24LE_PLANAR,
359     AV_CODEC_ID_PCM_S32LE_PLANAR,
360     AV_CODEC_ID_PCM_S16BE_PLANAR,
361     AV_CODEC_ID_PCM_S64LE,
362     AV_CODEC_ID_PCM_S64BE,
363     AV_CODEC_ID_PCM_F16LE,
364     AV_CODEC_ID_PCM_F24LE,
365     AV_CODEC_ID_PCM_VIDC,
366     AV_CODEC_ID_PCM_SGA,
367
368     /* various ADPCM codecs */
369     AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
370     AV_CODEC_ID_ADPCM_IMA_WAV,
371     AV_CODEC_ID_ADPCM_IMA_DK3,
372     AV_CODEC_ID_ADPCM_IMA_DK4,
373     AV_CODEC_ID_ADPCM_IMA_WS,
374     AV_CODEC_ID_ADPCM_IMA_SMJPEG,
375     AV_CODEC_ID_ADPCM_MS,
376     AV_CODEC_ID_ADPCM_4XM,
377     AV_CODEC_ID_ADPCM_XA,
378     AV_CODEC_ID_ADPCM_ADX,
379     AV_CODEC_ID_ADPCM_EA,
380     AV_CODEC_ID_ADPCM_G726,
381     AV_CODEC_ID_ADPCM_CT,
382     AV_CODEC_ID_ADPCM_SWF,
383     AV_CODEC_ID_ADPCM_YAMAHA,
384     AV_CODEC_ID_ADPCM_SBPRO_4,
385     AV_CODEC_ID_ADPCM_SBPRO_3,
386     AV_CODEC_ID_ADPCM_SBPRO_2,
387     AV_CODEC_ID_ADPCM_THP,
388     AV_CODEC_ID_ADPCM_IMA_AMV,
389     AV_CODEC_ID_ADPCM_EA_R1,
390     AV_CODEC_ID_ADPCM_EA_R3,
391     AV_CODEC_ID_ADPCM_EA_R2,
392     AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
393     AV_CODEC_ID_ADPCM_IMA_EA_EACS,
394     AV_CODEC_ID_ADPCM_EA_XAS,
395     AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
396     AV_CODEC_ID_ADPCM_IMA_ISS,
397     AV_CODEC_ID_ADPCM_G722,
398     AV_CODEC_ID_ADPCM_IMA_APC,
399     AV_CODEC_ID_ADPCM_VIMA,
400     AV_CODEC_ID_ADPCM_AFC,
401     AV_CODEC_ID_ADPCM_IMA_OKI,
402     AV_CODEC_ID_ADPCM_DTK,
403     AV_CODEC_ID_ADPCM_IMA_RAD,
404     AV_CODEC_ID_ADPCM_G726LE,
405     AV_CODEC_ID_ADPCM_THP_LE,
406     AV_CODEC_ID_ADPCM_PSX,
407     AV_CODEC_ID_ADPCM_AICA,
408     AV_CODEC_ID_ADPCM_IMA_DAT4,
409     AV_CODEC_ID_ADPCM_MTAF,
410     AV_CODEC_ID_ADPCM_AGM,
411     AV_CODEC_ID_ADPCM_ARGO,
412     AV_CODEC_ID_ADPCM_IMA_SSI,
413     AV_CODEC_ID_ADPCM_ZORK,
414     AV_CODEC_ID_ADPCM_IMA_APM,
415     AV_CODEC_ID_ADPCM_IMA_ALP,
416     AV_CODEC_ID_ADPCM_IMA_MTF,
417     AV_CODEC_ID_ADPCM_IMA_CUNNING,
418     AV_CODEC_ID_ADPCM_IMA_MOFLEX,
419     AV_CODEC_ID_ADPCM_IMA_ACORN,
420     AV_CODEC_ID_ADPCM_XMD,
421
422     /* AMR */
423     AV_CODEC_ID_AMR_NB = 0x12000,
424     AV_CODEC_ID_AMR_WB,
425
426     /* RealAudio codecs*/
427     AV_CODEC_ID_RA_144 = 0x13000,
428     AV_CODEC_ID_RA_288,
429
430     /* various DPCM codecs */
431     AV_CODEC_ID_ROQ_DPCM = 0x14000,
432     AV_CODEC_ID_INTERPLAY_DPCM,
433     AV_CODEC_ID_XAN_DPCM,
434     AV_CODEC_ID_SOL_DPCM,
435     AV_CODEC_ID_SDX2_DPCM,
436     AV_CODEC_ID_GREMLIN_DPCM,
437     AV_CODEC_ID_DERF_DPCM,
438     AV_CODEC_ID_WADY_DPCM,
439     AV_CODEC_ID_CBD2_DPCM,
440
441     /* audio codecs */
442     AV_CODEC_ID_MP2 = 0x15000,
443     AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
444     AV_CODEC_ID_AAC,
445     AV_CODEC_ID_AC3,
446     AV_CODEC_ID_DTS,
447     AV_CODEC_ID_VORBIS,
448     AV_CODEC_ID_DVAUDIO,
449     AV_CODEC_ID_WMAV1,
450     AV_CODEC_ID_WMAV2,
451     AV_CODEC_ID_MACE3,
452     AV_CODEC_ID_MACE6,
453     AV_CODEC_ID_VMDAUDIO,
454     AV_CODEC_ID_FLAC,
455     AV_CODEC_ID_MP3ADU,
456     AV_CODEC_ID_MP3ON4,
457     AV_CODEC_ID_SHORTEN,
458     AV_CODEC_ID_ALAC,
459     AV_CODEC_ID_WESTWOOD_SND1,
460     AV_CODEC_ID_GSM, ///< as in Berlin toast format
461     AV_CODEC_ID_QDM2,
462     AV_CODEC_ID_COOK,
463     AV_CODEC_ID_TRUESPEECH,
464     AV_CODEC_ID_TTA,
465     AV_CODEC_ID_SMACKAUDIO,
466     AV_CODEC_ID_QCELP,
467     AV_CODEC_ID_WAVPACK,
468     AV_CODEC_ID_DSICINAUDIO,
469     AV_CODEC_ID_IMC,
470     AV_CODEC_ID_MUSEPACK7,
471     AV_CODEC_ID_MLP,
472     AV_CODEC_ID_GSM_MS, /* as found in WAV */
473     AV_CODEC_ID_ATRAC3,
474     AV_CODEC_ID_APE,
475     AV_CODEC_ID_NELLYMOSER,
476     AV_CODEC_ID_MUSEPACK8,
477     AV_CODEC_ID_SPEEX,
478     AV_CODEC_ID_WMAVOICE,
479     AV_CODEC_ID_WMAPRO,
480     AV_CODEC_ID_WMALOSSLESS,
481     AV_CODEC_ID_ATRAC3P,
482     AV_CODEC_ID_EAC3,
483     AV_CODEC_ID_SIPR,
484     AV_CODEC_ID_MP1,
485     AV_CODEC_ID_TWINVQ,
486     AV_CODEC_ID_TRUEHD,
487     AV_CODEC_ID_MP4ALS,
488     AV_CODEC_ID_ATRAC1,
489     AV_CODEC_ID_BINKAUDIO_RDFT,
490     AV_CODEC_ID_BINKAUDIO_DCT,
491     AV_CODEC_ID_AAC_LATM,
492     AV_CODEC_ID_QDMC,
493     AV_CODEC_ID_CELT,
494     AV_CODEC_ID_G723_1,
495     AV_CODEC_ID_G729,
496     AV_CODEC_ID_8SVX_EXP,
497     AV_CODEC_ID_8SVX_FIB,
498     AV_CODEC_ID_BMV_AUDIO,
499     AV_CODEC_ID_RALF,
500     AV_CODEC_ID_IAC,
501     AV_CODEC_ID_ILBC,
502     AV_CODEC_ID_OPUS,
503     AV_CODEC_ID_COMFORT_NOISE,
504     AV_CODEC_ID_TAK,
505     AV_CODEC_ID_METASOUND,
506     AV_CODEC_ID_PAF_AUDIO,
507     AV_CODEC_ID_ON2AVC,
508     AV_CODEC_ID_DSS_SP,
509     AV_CODEC_ID_CODEC2,
510     AV_CODEC_ID_FFWAVESYNTH,
511     AV_CODEC_ID_SONIC,
512     AV_CODEC_ID_SONIC_LS,
513     AV_CODEC_ID_EVRC,
514     AV_CODEC_ID_SMV,
515     AV_CODEC_ID_DSD_LSBF,
516     AV_CODEC_ID_DSD_MSBF,
517     AV_CODEC_ID_DSD_LSBF_PLANAR,
518     AV_CODEC_ID_DSD_MSBF_PLANAR,
519     AV_CODEC_ID_4GV,
520     AV_CODEC_ID_INTERPLAY_ACM,
521     AV_CODEC_ID_XMA1,
522     AV_CODEC_ID_XMA2,
523     AV_CODEC_ID_DST,
524     AV_CODEC_ID_ATRAC3AL,
525     AV_CODEC_ID_ATRAC3PAL,
526     AV_CODEC_ID_DOLBY_E,
527     AV_CODEC_ID_APTX,
528     AV_CODEC_ID_APTX_HD,
529     AV_CODEC_ID_SBC,
530     AV_CODEC_ID_ATRAC9,
531     AV_CODEC_ID_HCOM,
532     AV_CODEC_ID_ACELP_KELVIN,
533     AV_CODEC_ID_MPEGH_3D_AUDIO,
534     AV_CODEC_ID_SIREN,
535     AV_CODEC_ID_HCA,
536     AV_CODEC_ID_FASTAUDIO,
537     AV_CODEC_ID_MSNSIREN,
538     AV_CODEC_ID_DFPWM,
539     AV_CODEC_ID_BONK,
540     AV_CODEC_ID_MISC4,
541     AV_CODEC_ID_APAC,
542     AV_CODEC_ID_FTR,
543     AV_CODEC_ID_WAVARC,
544     AV_CODEC_ID_RKA,
545     AV_CODEC_ID_AC4,
546     AV_CODEC_ID_OSQ,
547
548     /* subtitle codecs */
549     AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,          ///< A dummy ID pointing at the start of subtitle codecs.
550     AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
551     AV_CODEC_ID_DVB_SUBTITLE,
552     AV_CODEC_ID_TEXT,  ///< raw UTF-8 text
553     AV_CODEC_ID_XSUB,
554     AV_CODEC_ID_SSA,
555     AV_CODEC_ID_MOV_TEXT,
556     AV_CODEC_ID_HDMV_PGS_SUBTITLE,
557     AV_CODEC_ID_DVB_TELETEXT,
558     AV_CODEC_ID_SRT,
559     AV_CODEC_ID_MICRODVD,
560     AV_CODEC_ID_EIA_608,
561     AV_CODEC_ID_JACOSUB,
562     AV_CODEC_ID_SAMI,
563     AV_CODEC_ID_REALTEXT,
564     AV_CODEC_ID_STL,
565     AV_CODEC_ID_SUBVIEWER1,
566     AV_CODEC_ID_SUBVIEWER,
567     AV_CODEC_ID_SUBRIP,
568     AV_CODEC_ID_WEBVTT,
569     AV_CODEC_ID_MPL2,
570     AV_CODEC_ID_VPLAYER,
571     AV_CODEC_ID_PJS,
572     AV_CODEC_ID_ASS,
573     AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
574     AV_CODEC_ID_TTML,
575     AV_CODEC_ID_ARIB_CAPTION,
576
577     /* other specific kind of codecs (generally used for attachments) */
578     AV_CODEC_ID_FIRST_UNKNOWN = 0x18000,           ///< A dummy ID pointing at the start of various fake codecs.
579     AV_CODEC_ID_TTF = 0x18000,
580
581     AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream.
582     AV_CODEC_ID_EPG,
583     AV_CODEC_ID_BINTEXT,
584     AV_CODEC_ID_XBIN,
585     AV_CODEC_ID_IDF,
586     AV_CODEC_ID_OTF,
587     AV_CODEC_ID_SMPTE_KLV,
588     AV_CODEC_ID_DVD_NAV,
589     AV_CODEC_ID_TIMED_ID3,
590     AV_CODEC_ID_BIN_DATA,
591     AV_CODEC_ID_SMPTE_2038,
592
593
594     AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
595
596     AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
597                                 * stream (only used by libavformat) */
598     AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
599                                 * stream (only used by libavformat) */
600     AV_CODEC_ID_FFMETADATA = 0x21000,   ///< Dummy codec for streams containing only metadata information.
601     AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket
602     /**
603      * Dummy null video codec, useful mainly for development and debugging.
604      * Null encoder/decoder discard all input and never return any output.
605      */
606     AV_CODEC_ID_VNULL,
607     /**
608      * Dummy null audio codec, useful mainly for development and debugging.
609      * Null encoder/decoder discard all input and never return any output.
610      */
611     AV_CODEC_ID_ANULL,
612 };
613
614 /**
615  * Get the type of the given codec.
616  */
617 enum AVMediaType avcodec_get_type(enum AVCodecID codec_id);
618
619 /**
620  * Get the name of a codec.
621  * @return  a static string identifying the codec; never NULL
622  */
623 const char *avcodec_get_name(enum AVCodecID id);
624
625 /**
626  * Return codec bits per sample.
627  *
628  * @param[in] codec_id the codec
629  * @return Number of bits per sample or zero if unknown for the given codec.
630  */
631 int av_get_bits_per_sample(enum AVCodecID codec_id);
632
633 /**
634  * Return codec bits per sample.
635  * Only return non-zero if the bits per sample is exactly correct, not an
636  * approximation.
637  *
638  * @param[in] codec_id the codec
639  * @return Number of bits per sample or zero if unknown for the given codec.
640  */
641 int av_get_exact_bits_per_sample(enum AVCodecID codec_id);
642
643 /**
644  * Return a name for the specified profile, if available.
645  *
646  * @param codec_id the ID of the codec to which the requested profile belongs
647  * @param profile the profile value for which a name is requested
648  * @return A name for the profile if found, NULL otherwise.
649  *
650  * @note unlike av_get_profile_name(), which searches a list of profiles
651  *       supported by a specific decoder or encoder implementation, this
652  *       function searches the list of profiles from the AVCodecDescriptor
653  */
654 const char *avcodec_profile_name(enum AVCodecID codec_id, int profile);
655
656 /**
657  * Return the PCM codec associated with a sample format.
658  * @param be  endianness, 0 for little, 1 for big,
659  *            -1 (or anything else) for native
660  * @return  AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE
661  */
662 enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be);
663
664 /**
665  * @}
666  */
667
668 #endif // AVCODEC_CODEC_ID_H