]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mpeg4audio.h
Extradata length checks for Huffyuv.
[ffmpeg] / libavcodec / mpeg4audio.h
index 562f4269a66832ce3da69177f322b8756f208e11..b94185079d5051a69423c07a51617543500c71a3 100644 (file)
@@ -23,6 +23,8 @@
 #define AVCODEC_MPEG4AUDIO_H
 
 #include <stdint.h>
+#include "get_bits.h"
+#include "put_bits.h"
 
 typedef struct {
     int object_type;
@@ -33,6 +35,9 @@ typedef struct {
     int ext_object_type;
     int ext_sampling_index;
     int ext_sample_rate;
+    int ext_chan_config;
+    int channels;
+    int ps;  //< -1 implicit, 1 presence
 } MPEG4AudioConfig;
 
 extern const int ff_mpeg4audio_sample_rates[16];
@@ -53,7 +58,7 @@ enum AudioObjectType {
     AOT_AAC_LC,                ///< Y                       Low Complexity
     AOT_AAC_SSR,               ///< N (code in SoC repo)    Scalable Sample Rate
     AOT_AAC_LTP,               ///< N (code in SoC repo)    Long Term Prediction
-    AOT_SBR,                   ///< N (in progress)         Spectral Band Replication
+    AOT_SBR,                   ///< Y                       Spectral Band Replication
     AOT_AAC_SCALABLE,          ///< N                       Scalable
     AOT_TWINVQ,                ///< N                       Twin Vector Quantizer
     AOT_CELP,                  ///< N                       Code Excited Linear Prediction
@@ -76,17 +81,26 @@ enum AudioObjectType {
     AOT_SSC,                   ///< N                       SinuSoidal Coding
     AOT_PS,                    ///< N                       Parametric Stereo
     AOT_SURROUND,              ///< N                       MPEG Surround
-    AOT_ESCAPE,                ///< N                       Escape Value
+    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,                   ///< N                       Audio LosslesS
+    AOT_ALS,                   ///< Y                       Audio LosslesS
     AOT_SLS,                   ///< N                       Scalable LosslesS
     AOT_SLS_NON_CORE,          ///< N                       Scalable LosslesS (non core)
-    AOT_ER_AAC_LD,             ///< N                       Error Resilient Enhanced Low Delay
+    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_NOSBR,            ///< N                       Unified Speech and Audio Coding (no SBR)
+    AOT_SAOC,                  ///< N                       Spatial Audio Object Coding
+    AOT_LD_SURROUND,           ///< N                       Low Delay MPEG Surround
+    AOT_USAC,                  ///< N                       Unified Speech and Audio Coding
 };
 
+#define MAX_PCE_SIZE 304 ///<Maximum size of a PCE including the 3-bit ID_PCE
+                         ///<marker and the comment
+
+int ff_copy_pce_data(PutBitContext *pb, GetBitContext *gb);
+
 #endif /* AVCODEC_MPEG4AUDIO_H */