FFmpeg: libavcodec/codec_id.h Source File
Go to the documentation of this file. 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
26
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 */
51
52 /* video codecs */
189 #define AV_CODEC_ID_IFF_BYTERUN1 AV_CODEC_ID_IFF_ILBM
209 #if FF_API_V408_CODECID
211 #endif
229 #define AV_CODEC_ID_H265 AV_CODEC_ID_HEVC
253 #define AV_CODEC_ID_H266 AV_CODEC_ID_VVC
259 #if FF_API_V408_CODECID
262 #endif
334
335 /* various PCM "codecs" */
374
375 /* various ADPCM codecs */
438
439 /* AMR */
442
443 /* RealAudio codecs*/
446
447 /* various DPCM codecs */
457
458 /* audio codecs */
568
569 /* subtitle codecs */
598
599 /* other specific kind of codecs (generally used for attachments) */
602
616
617
618 AV_CODEC_ID_PROBE = 0x19000,
///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
619
621 * stream (only used by libavformat) */
623 * stream (only used by libavformat) */
626 /**
627 * Dummy null video codec, useful mainly for development and debugging.
628 * Null encoder/decoder discard all input and never return any output.
629 */
631 /**
632 * Dummy null audio codec, useful mainly for development and debugging.
633 * Null encoder/decoder discard all input and never return any output.
634 */
636 };
637
638 /**
639 * Get the type of the given codec.
640 */
642
643 /**
644 * Get the name of a codec.
645 * @return a static string identifying the codec; never NULL
646 */
648
649 /**
650 * Return codec bits per sample.
651 *
652 * @param[in] codec_id the codec
653 * @return Number of bits per sample or zero if unknown for the given codec.
654 */
656
657 /**
658 * Return codec bits per sample.
659 * Only return non-zero if the bits per sample is exactly correct, not an
660 * approximation.
661 *
662 * @param[in] codec_id the codec
663 * @return Number of bits per sample or zero if unknown for the given codec.
664 */
666
667 /**
668 * Return a name for the specified profile, if available.
669 *
670 * @param codec_id the ID of the codec to which the requested profile belongs
671 * @param profile the profile value for which a name is requested
672 * @return A name for the profile if found, NULL otherwise.
673 *
674 * @note unlike av_get_profile_name(), which searches a list of profiles
675 * supported by a specific decoder or encoder implementation, this
676 * function searches the list of profiles from the AVCodecDescriptor
677 */
679
680 /**
681 * Return the PCM codec associated with a sample format.
682 * @param be endianness, 0 for little, 1 for big,
683 * -1 (or anything else) for native
684 * @return AV_CODEC_ID_PCM_* or AV_CODEC_ID_NONE
685 */
687
688 /**
689 * @}
690 */
691
692 #endif // AVCODEC_CODEC_ID_H
@ AV_CODEC_ID_TRUEMOTION2
@ AV_CODEC_ID_TRUEMOTION2RT
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it be(in the first position) for now. Options ------- Then comes the options array. This is what will define the user accessible options. For example
@ AV_CODEC_ID_ADPCM_IMA_QT
@ AV_CODEC_ID_JPEGXL_ANIM
@ AV_CODEC_ID_INTERPLAY_ACM
enum AVMediaType avcodec_get_type(enum AVCodecID codec_id)
Get the type of the given codec.
@ AV_CODEC_ID_PCM_S32LE_PLANAR
@ AV_CODEC_ID_ADPCM_IMA_CUNNING
@ AV_CODEC_ID_DVB_TELETEXT
@ AV_CODEC_ID_PCM_S16BE_PLANAR
@ AV_CODEC_ID_FFMETADATA
Dummy codec for streams containing only metadata information.
@ AV_CODEC_ID_ADPCM_EA_R3
@ AV_CODEC_ID_ADPCM_IMA_OKI
@ AV_CODEC_ID_TRUEMOTION1
@ AV_CODEC_ID_VNULL
Dummy null video codec, useful mainly for development and debugging.
@ AV_CODEC_ID_SCREENPRESSO
const char * avcodec_profile_name(enum AVCodecID codec_id, int profile)
Return a name for the specified profile, if available.
@ AV_CODEC_ID_HDMV_PGS_SUBTITLE
@ AV_CODEC_ID_ADPCM_IMA_ESCAPE
@ AV_CODEC_ID_PCM_S16LE_PLANAR
@ AV_CODEC_ID_ADPCM_THP_LE
@ AV_CODEC_ID_DSICINVIDEO
@ AV_CODEC_ID_MPEGH_3D_AUDIO
@ AV_CODEC_ID_DSD_MSBF_PLANAR
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
@ AV_CODEC_ID_FFWAVESYNTH
@ AV_CODEC_ID_DVB_SUBTITLE
int av_get_bits_per_sample(enum AVCodecID codec_id)
Return codec bits per sample.
@ AV_CODEC_ID_ADPCM_SBPRO_2
@ AV_CODEC_ID_ADPCM_IMA_ACORN
@ AV_CODEC_ID_MPEG4SYSTEMS
FAKE codec to indicate a MPEG-4 Systems stream (only used by libavformat)
@ AV_CODEC_ID_DSICINAUDIO
@ AV_CODEC_ID_ADPCM_IMA_EA_SEAD
@ AV_CODEC_ID_ADPCM_IMA_DK3
@ AV_CODEC_ID_ADPCM_IMA_APC
@ AV_CODEC_ID_ADPCM_IMA_ISS
@ AV_CODEC_ID_BINKAUDIO_DCT
@ AV_CODEC_ID_TIERTEXSEQVIDEO
@ AV_CODEC_ID_ADPCM_IMA_SMJPEG
@ AV_CODEC_ID_WRAPPED_AVFRAME
Passthrough codec, AVFrames wrapped in AVPacket.
@ AV_CODEC_ID_ADPCM_IMA_XBOX
@ AV_CODEC_ID_ARIB_CAPTION
@ AV_CODEC_ID_ADPCM_EA_XAS
@ AV_CODEC_ID_ADPCM_IMA_MAGIX
@ AV_CODEC_ID_INTERPLAY_VIDEO
@ AV_CODEC_ID_ADPCM_YAMAHA
@ AV_CODEC_ID_ADPCM_IMA_WS
@ AV_CODEC_ID_INTERPLAY_DPCM
@ AV_CODEC_ID_ADPCM_IMA_EA_EACS
@ AV_CODEC_ID_WMALOSSLESS
@ AV_CODEC_ID_ADPCM_IMA_DK4
@ AV_CODEC_ID_DVD_SUBTITLE
@ AV_CODEC_ID_MOTIONPIXELS
@ AV_CODEC_ID_MPEG2TS
FAKE codec to indicate a raw MPEG-2 TS stream (only used by libavformat)
@ AV_CODEC_ID_ADPCM_IMA_AMV
@ AV_CODEC_ID_FIRST_UNKNOWN
A dummy ID pointing at the start of various fake codecs.
@ AV_CODEC_ID_PCM_S24LE_PLANAR
@ AV_CODEC_ID_GSM
as in Berlin toast format
AVCodecID
Identify the syntax and semantics of the bitstream.
@ AV_CODEC_ID_ADPCM_CIRCUS
int av_get_exact_bits_per_sample(enum AVCodecID codec_id)
Return codec bits per sample.
@ AV_CODEC_ID_ACELP_KELVIN
@ AV_CODEC_ID_ANULL
Dummy null audio codec, useful mainly for development and debugging.
@ AV_CODEC_ID_ADPCM_IMA_RAD
@ AV_CODEC_ID_ADPCM_IMA_ALP
@ AV_CODEC_ID_ADPCM_IMA_HVQM4
@ AV_CODEC_ID_COMFORT_NOISE
const char * avcodec_get_name(enum AVCodecID id)
Get the name of a codec.
@ AV_CODEC_ID_ADPCM_EA_MAXIS_XA
@ AV_CODEC_ID_FIRST_AUDIO
A dummy id pointing at the start of audio codecs.
@ AV_CODEC_ID_ADPCM_IMA_HVQM2
@ AV_CODEC_ID_DSD_LSBF_PLANAR
@ AV_CODEC_ID_FIRST_SUBTITLE
A dummy ID pointing at the start of subtitle codecs.
AVSampleFormat
Audio sample formats.
@ AV_CODEC_ID_SMPTE_436M_ANC
@ AV_CODEC_ID_ADPCM_IMA_APM
@ AV_CODEC_ID_ADPCM_IMA_DAT4
@ AV_CODEC_ID_BETHSOFTVID
@ AV_CODEC_ID_ADPCM_SANYO
@ AV_CODEC_ID_ADPCM_IMA_MTF
@ AV_CODEC_ID_WESTWOOD_SND1
@ AV_CODEC_ID_TEXT
raw UTF-8 text
@ AV_CODEC_ID_ADPCM_IMA_PDA
@ AV_CODEC_ID_ADPCM_G726LE
@ AV_CODEC_ID_ADPCM_EA_R1
@ AV_CODEC_ID_ADPCM_EA_R2
@ AV_CODEC_ID_PROBE
codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
@ AV_CODEC_ID_SIMBIOSIS_IMX
enum AVCodecID av_get_pcm_codec(enum AVSampleFormat fmt, int be)
Return the PCM codec associated with a sample format.
@ AV_CODEC_ID_ADPCM_SBPRO_4
@ AV_CODEC_ID_ADPCM_IMA_SSI
@ AV_CODEC_ID_PCM_S24DAUD
@ AV_CODEC_ID_ADPCM_IMA_MOFLEX
@ AV_CODEC_ID_ADPCM_IMA_WAV
@ AV_CODEC_ID_PCM_S8_PLANAR
@ AV_CODEC_ID_BRENDER_PIX
@ AV_CODEC_ID_HDMV_TEXT_SUBTITLE
@ AV_CODEC_ID_RADIANCE_HDR
@ AV_CODEC_ID_BINKAUDIO_RDFT
@ AV_CODEC_ID_MPEG2VIDEO
preferred ID for MPEG-1/2 video decoding
@ AV_CODEC_ID_GREMLIN_DPCM
@ AV_CODEC_ID_ADPCM_SBPRO_3
@ AV_CODEC_ID_SCTE_35
Contain timestamp estimated through PCR of program stream.
Generated on Fri Oct 17 2025 19:21:48 for FFmpeg by
doxygen
1.8.17