} MPEG4AudioConfig;
extern av_export_avcodec const int avpriv_mpeg4audio_sample_rates[16];
-extern const uint8_t ff_mpeg4audio_channels[8];
+extern const uint8_t ff_mpeg4audio_channels[14];
/**
* Parse MPEG-4 systems extradata from a potentially unaligned GetBitContext to retrieve audio configuration.
* @param[in] c MPEG4AudioConfig structure to fill.
* @param[in] gb Extradata from container.
* @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.
+ * @param[in] logctx opaque struct starting with an AVClass element, used for logging.
+ * @return negative AVERROR code on error, on success AudioSpecificConfig bit index in extradata.
*/
int ff_mpeg4audio_get_config_gb(MPEG4AudioConfig *c, GetBitContext *gb,
- int sync_extension);
+ int sync_extension, void *logctx);
/**
* Parse MPEG-4 systems extradata from a raw buffer to retrieve audio configuration.
* @param[in] c MPEG4AudioConfig structure to fill.
* @param[in] buf Extradata from container.
- * @param[in] bit_size Extradata size in bits.
+ * @param[in] size Extradata size in bytes.
* @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.
+ * @param[in] logctx opaque struct starting with an AVClass element, used for logging.
+ * @return negative AVERROR code on error, AudioSpecificConfig bit index in extradata on success.
*/
-int avpriv_mpeg4audio_get_config(MPEG4AudioConfig *c, const uint8_t *buf,
- int bit_size, int sync_extension);
+int avpriv_mpeg4audio_get_config2(MPEG4AudioConfig *c, const uint8_t *buf,
+ int size, int sync_extension, void *logctx);
enum AudioObjectType {
AOT_NULL,
ff_pce_copy_bits(pb, gb, 16);
if (bits)
ff_pce_copy_bits(pb, gb, bits);
- avpriv_align_put_bits(pb);
+ align_put_bits(pb);
align_get_bits(gb);
comment_size = ff_pce_copy_bits(pb, gb, 8);
for (; comment_size > 0; comment_size--)