]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mpeg4audio.h
latmdec: fix audio specific config parsing
[ffmpeg] / libavcodec / mpeg4audio.h
index c9eac18188ba06634133a6fea12aa9278978841a..7560f3f4e4c4566f7d514ab386876aba5ff7343c 100644 (file)
@@ -2,20 +2,20 @@
  * MPEG-4 Audio common header
  * Copyright (c) 2008 Baptiste Coudurier <baptiste.coudurier@free.fr>
  *
- * This file is part of FFmpeg.
+ * This file is part of Libav.
  *
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  *
- * FFmpeg is distributed in the hope that it will be useful,
+ * Libav is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
+ * License along with Libav; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
@@ -31,24 +31,28 @@ typedef struct {
     int sampling_index;
     int sample_rate;
     int chan_config;
-    int sbr; //< -1 implicit, 1 presence
+    int sbr; ///< -1 implicit, 1 presence
     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];
+extern const int avpriv_mpeg4audio_sample_rates[16];
 extern const uint8_t ff_mpeg4audio_channels[8];
+
 /**
  * Parse MPEG-4 systems extradata to retrieve audio configuration.
  * @param[in] c        MPEG4AudioConfig structure to fill.
  * @param[in] buf      Extradata from container.
- * @param[in] buf_size Extradata size.
+ * @param[in] bit_size Extradata size in bits.
+ * @param[in] sync_extension look for a sync extension after config if true.
  * @return On error -1 is returned, on success AudioSpecificConfig bit index in extradata.
  */
-int ff_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf, int buf_size);
+int avpriv_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf,
+                                 int bit_size, int sync_extension);
 
 enum AudioObjectType {
     AOT_NULL,
@@ -56,8 +60,8 @@ enum AudioObjectType {
     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,               ///< N (code in SoC repo)    Long Term Prediction
-    AOT_SBR,                   ///< N (in progress)         Spectral Band Replication
+    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
@@ -85,7 +89,7 @@ enum AudioObjectType {
     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_ELD,            ///< N                       Error Resilient Enhanced Low Delay
@@ -94,12 +98,12 @@ enum AudioObjectType {
     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             = 45, ///< N                       Unified Speech and Audio Coding
+    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);
+int avpriv_copy_pce_data(PutBitContext *pb, GetBitContext *gb);
 
 #endif /* AVCODEC_MPEG4AUDIO_H */