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