4 * This file is part of FFmpeg.
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.
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.
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
21 #ifndef AVCODEC_CODEC_ID_H
22 #define AVCODEC_CODEC_ID_H
24 #include "libavutil/avutil.h"
27 * @addtogroup lavc_core
32 * Identify the syntax and semantics of the bitstream.
33 * The principle is roughly:
34 * Two decoders with the same ID can decode the same streams.
35 * Two encoders with the same ID can encode compatible streams.
36 * There may be slight deviations from the principle due to implementation
39 * If you add a codec ID to this list, add it so that
40 * 1. no value of an existing codec ID changes (that would break ABI),
41 * 2. it is as close as possible to similar codecs
43 * After adding new codec IDs, do not forget to add an entry to the codec
44 * descriptor list and bump libavcodec minor version.
50 AV_CODEC_ID_MPEG1VIDEO,
51 AV_CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding
63 AV_CODEC_ID_MSMPEG4V1,
64 AV_CODEC_ID_MSMPEG4V2,
65 AV_CODEC_ID_MSMPEG4V3,
88 AV_CODEC_ID_INTERPLAY_VIDEO,
100 AV_CODEC_ID_TRUEMOTION1,
101 AV_CODEC_ID_VMDVIDEO,
126 AV_CODEC_ID_TRUEMOTION2,
132 AV_CODEC_ID_SMACKVIDEO,
137 AV_CODEC_ID_JPEG2000,
143 AV_CODEC_ID_DSICINVIDEO,
144 AV_CODEC_ID_TIERTEXSEQVIDEO,
152 AV_CODEC_ID_BETHSOFTVID,
164 AV_CODEC_ID_ESCAPE124,
168 AV_CODEC_ID_MOTIONPIXELS,
180 AV_CODEC_ID_FLASHSV2,
181 AV_CODEC_ID_CDGRAPHICS,
184 AV_CODEC_ID_BINKVIDEO,
185 AV_CODEC_ID_IFF_ILBM,
186 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
192 AV_CODEC_ID_A64_MULTI,
193 AV_CODEC_ID_A64_MULTI5,
196 AV_CODEC_ID_LAGARITH,
200 AV_CODEC_ID_WMV3IMAGE,
201 AV_CODEC_ID_VC1IMAGE,
203 AV_CODEC_ID_BMV_VIDEO,
210 AV_CODEC_ID_ZEROCODEC,
219 AV_CODEC_ID_ESCAPE130,
222 AV_CODEC_ID_HNM4_VIDEO,
224 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
226 AV_CODEC_ID_ALIAS_PIX,
227 AV_CODEC_ID_BRENDER_PIX,
228 AV_CODEC_ID_PAF_VIDEO,
241 AV_CODEC_ID_SCREENPRESSO,
248 #define AV_CODEC_ID_H266 AV_CODEC_ID_VVC
250 AV_CODEC_ID_Y41P = 0x8000,
255 AV_CODEC_ID_TARGA_Y216,
267 AV_CODEC_ID_TRUEMOTION2RT,
269 AV_CODEC_ID_MAGICYUV,
270 AV_CODEC_ID_SHEERVIDEO,
277 AV_CODEC_ID_CLEARVIDEO,
280 AV_CODEC_ID_BITPACKED,
287 AV_CODEC_ID_PROSUMER,
303 AV_CODEC_ID_MOBICLIP,
308 AV_CODEC_ID_SIMBIOSIS_IMX,
309 AV_CODEC_ID_SGA_VIDEO,
311 /* various PCM "codecs" */
312 AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
313 AV_CODEC_ID_PCM_S16LE = 0x10000,
314 AV_CODEC_ID_PCM_S16BE,
315 AV_CODEC_ID_PCM_U16LE,
316 AV_CODEC_ID_PCM_U16BE,
319 AV_CODEC_ID_PCM_MULAW,
320 AV_CODEC_ID_PCM_ALAW,
321 AV_CODEC_ID_PCM_S32LE,
322 AV_CODEC_ID_PCM_S32BE,
323 AV_CODEC_ID_PCM_U32LE,
324 AV_CODEC_ID_PCM_U32BE,
325 AV_CODEC_ID_PCM_S24LE,
326 AV_CODEC_ID_PCM_S24BE,
327 AV_CODEC_ID_PCM_U24LE,
328 AV_CODEC_ID_PCM_U24BE,
329 AV_CODEC_ID_PCM_S24DAUD,
330 AV_CODEC_ID_PCM_ZORK,
331 AV_CODEC_ID_PCM_S16LE_PLANAR,
333 AV_CODEC_ID_PCM_F32BE,
334 AV_CODEC_ID_PCM_F32LE,
335 AV_CODEC_ID_PCM_F64BE,
336 AV_CODEC_ID_PCM_F64LE,
337 AV_CODEC_ID_PCM_BLURAY,
340 AV_CODEC_ID_PCM_S8_PLANAR,
341 AV_CODEC_ID_PCM_S24LE_PLANAR,
342 AV_CODEC_ID_PCM_S32LE_PLANAR,
343 AV_CODEC_ID_PCM_S16BE_PLANAR,
345 AV_CODEC_ID_PCM_S64LE = 0x10800,
346 AV_CODEC_ID_PCM_S64BE,
347 AV_CODEC_ID_PCM_F16LE,
348 AV_CODEC_ID_PCM_F24LE,
349 AV_CODEC_ID_PCM_VIDC,
352 /* various ADPCM codecs */
353 AV_CODEC_ID_ADPCM_IMA_QT = 0x11000,
354 AV_CODEC_ID_ADPCM_IMA_WAV,
355 AV_CODEC_ID_ADPCM_IMA_DK3,
356 AV_CODEC_ID_ADPCM_IMA_DK4,
357 AV_CODEC_ID_ADPCM_IMA_WS,
358 AV_CODEC_ID_ADPCM_IMA_SMJPEG,
359 AV_CODEC_ID_ADPCM_MS,
360 AV_CODEC_ID_ADPCM_4XM,
361 AV_CODEC_ID_ADPCM_XA,
362 AV_CODEC_ID_ADPCM_ADX,
363 AV_CODEC_ID_ADPCM_EA,
364 AV_CODEC_ID_ADPCM_G726,
365 AV_CODEC_ID_ADPCM_CT,
366 AV_CODEC_ID_ADPCM_SWF,
367 AV_CODEC_ID_ADPCM_YAMAHA,
368 AV_CODEC_ID_ADPCM_SBPRO_4,
369 AV_CODEC_ID_ADPCM_SBPRO_3,
370 AV_CODEC_ID_ADPCM_SBPRO_2,
371 AV_CODEC_ID_ADPCM_THP,
372 AV_CODEC_ID_ADPCM_IMA_AMV,
373 AV_CODEC_ID_ADPCM_EA_R1,
374 AV_CODEC_ID_ADPCM_EA_R3,
375 AV_CODEC_ID_ADPCM_EA_R2,
376 AV_CODEC_ID_ADPCM_IMA_EA_SEAD,
377 AV_CODEC_ID_ADPCM_IMA_EA_EACS,
378 AV_CODEC_ID_ADPCM_EA_XAS,
379 AV_CODEC_ID_ADPCM_EA_MAXIS_XA,
380 AV_CODEC_ID_ADPCM_IMA_ISS,
381 AV_CODEC_ID_ADPCM_G722,
382 AV_CODEC_ID_ADPCM_IMA_APC,
383 AV_CODEC_ID_ADPCM_VIMA,
385 AV_CODEC_ID_ADPCM_AFC = 0x11800,
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,
406 AV_CODEC_ID_AMR_NB = 0x12000,
409 /* RealAudio codecs*/
410 AV_CODEC_ID_RA_144 = 0x13000,
413 /* various DPCM codecs */
414 AV_CODEC_ID_ROQ_DPCM = 0x14000,
415 AV_CODEC_ID_INTERPLAY_DPCM,
416 AV_CODEC_ID_XAN_DPCM,
417 AV_CODEC_ID_SOL_DPCM,
419 AV_CODEC_ID_SDX2_DPCM = 0x14800,
420 AV_CODEC_ID_GREMLIN_DPCM,
421 AV_CODEC_ID_DERF_DPCM,
424 AV_CODEC_ID_MP2 = 0x15000,
425 AV_CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3
435 AV_CODEC_ID_VMDAUDIO,
441 AV_CODEC_ID_WESTWOOD_SND1,
442 AV_CODEC_ID_GSM, ///< as in Berlin toast format
445 AV_CODEC_ID_TRUESPEECH,
447 AV_CODEC_ID_SMACKAUDIO,
450 AV_CODEC_ID_DSICINAUDIO,
452 AV_CODEC_ID_MUSEPACK7,
454 AV_CODEC_ID_GSM_MS, /* as found in WAV */
457 AV_CODEC_ID_NELLYMOSER,
458 AV_CODEC_ID_MUSEPACK8,
460 AV_CODEC_ID_WMAVOICE,
462 AV_CODEC_ID_WMALOSSLESS,
471 AV_CODEC_ID_BINKAUDIO_RDFT,
472 AV_CODEC_ID_BINKAUDIO_DCT,
473 AV_CODEC_ID_AAC_LATM,
478 AV_CODEC_ID_8SVX_EXP,
479 AV_CODEC_ID_8SVX_FIB,
480 AV_CODEC_ID_BMV_AUDIO,
485 AV_CODEC_ID_COMFORT_NOISE,
487 AV_CODEC_ID_METASOUND,
488 AV_CODEC_ID_PAF_AUDIO,
493 AV_CODEC_ID_FFWAVESYNTH = 0x15800,
495 AV_CODEC_ID_SONIC_LS,
498 AV_CODEC_ID_DSD_LSBF,
499 AV_CODEC_ID_DSD_MSBF,
500 AV_CODEC_ID_DSD_LSBF_PLANAR,
501 AV_CODEC_ID_DSD_MSBF_PLANAR,
503 AV_CODEC_ID_INTERPLAY_ACM,
507 AV_CODEC_ID_ATRAC3AL,
508 AV_CODEC_ID_ATRAC3PAL,
515 AV_CODEC_ID_ACELP_KELVIN,
516 AV_CODEC_ID_MPEGH_3D_AUDIO,
519 AV_CODEC_ID_FASTAUDIO,
521 /* subtitle codecs */
522 AV_CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs.
523 AV_CODEC_ID_DVD_SUBTITLE = 0x17000,
524 AV_CODEC_ID_DVB_SUBTITLE,
525 AV_CODEC_ID_TEXT, ///< raw UTF-8 text
528 AV_CODEC_ID_MOV_TEXT,
529 AV_CODEC_ID_HDMV_PGS_SUBTITLE,
530 AV_CODEC_ID_DVB_TELETEXT,
533 AV_CODEC_ID_MICRODVD = 0x17800,
537 AV_CODEC_ID_REALTEXT,
539 AV_CODEC_ID_SUBVIEWER1,
540 AV_CODEC_ID_SUBVIEWER,
547 AV_CODEC_ID_HDMV_TEXT_SUBTITLE,
549 AV_CODEC_ID_ARIB_CAPTION,
551 /* other specific kind of codecs (generally used for attachments) */
552 AV_CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs.
553 AV_CODEC_ID_TTF = 0x18000,
555 AV_CODEC_ID_SCTE_35, ///< Contain timestamp estimated through PCR of program stream.
557 AV_CODEC_ID_BINTEXT = 0x18800,
561 AV_CODEC_ID_SMPTE_KLV,
563 AV_CODEC_ID_TIMED_ID3,
564 AV_CODEC_ID_BIN_DATA,
567 AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
569 AV_CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
570 * stream (only used by libavformat) */
571 AV_CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems
572 * stream (only used by libavformat) */
573 AV_CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information.
574 AV_CODEC_ID_WRAPPED_AVFRAME = 0x21001, ///< Passthrough codec, AVFrames wrapped in AVPacket
578 * Get the type of the given codec.
580 enum AVMediaType avcodec_get_type(enum AVCodecID codec_id);
583 * Get the name of a codec.
584 * @return a static string identifying the codec; never NULL
586 const char *avcodec_get_name(enum AVCodecID id);
592 #endif // AVCODEC_CODEC_ID_H