[FFmpeg-devel] [PATCH 2/4] mpeg4audio: explicitly define each AOT

James Almer jamrial at gmail.com
Wed Jun 5 19:16:22 EEST 2024


On 6/5/2024 12:08 AM, Lynne via ffmpeg-devel wrote:
> This makes it far easier to figure out which AOT belongs to which
> profile.
> Also, explicitly highlight the holes.
> ---
>   libavcodec/mpeg4audio.h | 82 +++++++++++++++++++++--------------------
>   1 file changed, 42 insertions(+), 40 deletions(-)
> 
> diff --git a/libavcodec/mpeg4audio.h b/libavcodec/mpeg4audio.h
> index 5daba7824b..0819e48a42 100644
> --- a/libavcodec/mpeg4audio.h
> +++ b/libavcodec/mpeg4audio.h
> @@ -68,49 +68,51 @@ int avpriv_mpeg4audio_get_config2(MPEG4AudioConfig *c, const uint8_t *buf,
>                                     int size, int sync_extension, void *logctx);
>   
>   enum AudioObjectType {
> -    AOT_NULL,
> +    AOT_NULL = 0,
>                                  // Support?                Name
> -    AOT_AAC_MAIN,              ///< Y                       Main
> -    AOT_AAC_LC,                ///< Y                       Low Complexity
> -    AOT_AAC_SSR,               ///< N (code in SoC repo)    Scalable Sample Rate
> -    AOT_AAC_LTP,               ///< Y                       Long Term Prediction
> -    AOT_SBR,                   ///< Y                       Spectral Band Replication
> -    AOT_AAC_SCALABLE,          ///< N                       Scalable
> -    AOT_TWINVQ,                ///< N                       Twin Vector Quantizer
> -    AOT_CELP,                  ///< N                       Code Excited Linear Prediction
> -    AOT_HVXC,                  ///< N                       Harmonic Vector eXcitation Coding
> +    AOT_AAC_MAIN         =  1, ///< Y                       Main
> +    AOT_AAC_LC           =  2, ///< Y                       Low Complexity
> +    AOT_AAC_SSR          =  3, ///< N (code in SoC repo)    Scalable Sample Rate
> +    AOT_AAC_LTP          =  4, ///< Y                       Long Term Prediction
> +    AOT_SBR              =  5, ///< Y                       Spectral Band Replication
> +    AOT_AAC_SCALABLE     =  6, ///< N                       Scalable
> +    AOT_TWINVQ           =  7, ///< N                       Twin Vector Quantizer
> +    AOT_CELP             =  8, ///< N                       Code Excited Linear Prediction
> +    AOT_HVXC             =  9, ///< N                       Harmonic Vector eXcitation Coding
> +
>       AOT_TTSI             = 12, ///< N                       Text-To-Speech Interface
> -    AOT_MAINSYNTH,             ///< N                       Main Synthesis
> -    AOT_WAVESYNTH,             ///< N                       Wavetable Synthesis
> -    AOT_MIDI,                  ///< N                       General MIDI
> -    AOT_SAFX,                  ///< N                       Algorithmic Synthesis and Audio Effects
> -    AOT_ER_AAC_LC,             ///< N                       Error Resilient Low Complexity
> +    AOT_MAINSYNTH        = 13, ///< N                       Main Synthesis
> +    AOT_WAVESYNTH        = 14, ///< N                       Wavetable Synthesis
> +    AOT_MIDI             = 15, ///< N                       General MIDI
> +    AOT_SAFX             = 16, ///< N                       Algorithmic Synthesis and Audio Effects
> +    AOT_ER_AAC_LC        = 17, ///< N                       Error Resilient Low Complexity
> +
>       AOT_ER_AAC_LTP       = 19, ///< N                       Error Resilient Long Term Prediction
> -    AOT_ER_AAC_SCALABLE,       ///< N                       Error Resilient Scalable
> -    AOT_ER_TWINVQ,             ///< N                       Error Resilient Twin Vector Quantizer
> -    AOT_ER_BSAC,               ///< N                       Error Resilient Bit-Sliced Arithmetic Coding
> -    AOT_ER_AAC_LD,             ///< N                       Error Resilient Low Delay
> -    AOT_ER_CELP,               ///< N                       Error Resilient Code Excited Linear Prediction
> -    AOT_ER_HVXC,               ///< N                       Error Resilient Harmonic Vector eXcitation Coding
> -    AOT_ER_HILN,               ///< N                       Error Resilient Harmonic and Individual Lines plus Noise
> -    AOT_ER_PARAM,              ///< N                       Error Resilient Parametric
> -    AOT_SSC,                   ///< N                       SinuSoidal Coding
> -    AOT_PS,                    ///< N                       Parametric Stereo
> -    AOT_SURROUND,              ///< N                       MPEG Surround
> -    AOT_ESCAPE,                ///< Y                       Escape Value
> -    AOT_L1,                    ///< Y                       Layer 1
> -    AOT_L2,                    ///< Y                       Layer 2
> -    AOT_L3,                    ///< Y                       Layer 3
> -    AOT_DST,                   ///< N                       Direct Stream Transfer
> -    AOT_ALS,                   ///< Y                       Audio LosslesS
> -    AOT_SLS,                   ///< N                       Scalable LosslesS
> -    AOT_SLS_NON_CORE,          ///< N                       Scalable LosslesS (non core)
> -    AOT_ER_AAC_ELD,            ///< N                       Error Resilient Enhanced Low Delay
> -    AOT_SMR_SIMPLE,            ///< N                       Symbolic Music Representation Simple
> -    AOT_SMR_MAIN,              ///< N                       Symbolic Music Representation Main
> -    AOT_USAC,                  ///< Y                       Unified Speech and Audio Coding
> -    AOT_SAOC,                  ///< N                       Spatial Audio Object Coding
> -    AOT_LD_SURROUND,           ///< N                       Low Delay MPEG Surround
> +    AOT_ER_AAC_SCALABLE  = 20, ///< N                       Error Resilient Scalable
> +    AOT_ER_TWINVQ        = 21, ///< N                       Error Resilient Twin Vector Quantizer
> +    AOT_ER_BSAC          = 22, ///< N                       Error Resilient Bit-Sliced Arithmetic Coding
> +    AOT_ER_AAC_LD        = 23, ///< N                       Error Resilient Low Delay
> +    AOT_ER_CELP          = 24, ///< N                       Error Resilient Code Excited Linear Prediction
> +    AOT_ER_HVXC          = 25, ///< N                       Error Resilient Harmonic Vector eXcitation Coding
> +    AOT_ER_HILN          = 26, ///< N                       Error Resilient Harmonic and Individual Lines plus Noise
> +    AOT_ER_PARAM         = 27, ///< N                       Error Resilient Parametric
> +    AOT_SSC              = 28, ///< N                       SinuSoidal Coding
> +    AOT_PS               = 29, ///< N                       Parametric Stereo
> +    AOT_SURROUND         = 30, ///< N                       MPEG Surround
> +    AOT_ESCAPE           = 31, ///< Y                       Escape Value
> +    AOT_L1               = 32, ///< Y                       Layer 1
> +    AOT_L2               = 33, ///< Y                       Layer 2
> +    AOT_L3               = 34, ///< Y                       Layer 3
> +    AOT_DST              = 35, ///< N                       Direct Stream Transfer
> +    AOT_ALS              = 36, ///< Y                       Audio LosslesS
> +    AOT_SLS              = 37, ///< N                       Scalable LosslesS
> +    AOT_SLS_NON_CORE     = 38, ///< N                       Scalable LosslesS (non core)
> +    AOT_ER_AAC_ELD       = 39, ///< N                       Error Resilient Enhanced Low Delay
> +    AOT_SMR_SIMPLE       = 40, ///< N                       Symbolic Music Representation Simple
> +    AOT_SMR_MAIN         = 41, ///< N                       Symbolic Music Representation Main
> +    AOT_USAC             = 42, ///< Y                       Unified Speech and Audio Coding
> +    AOT_SAOC             = 43, ///< N                       Spatial Audio Object Coding
> +    AOT_LD_SURROUND      = 44, ///< N                       Low Delay MPEG Surround
>   };
>   
>   #define MAX_PCE_SIZE 320 ///<Maximum size of a PCE including the 3-bit ID_PCE

Should be ok.


More information about the ffmpeg-devel mailing list