aac_latm_dec: use aac context and aac m4ac
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Tue, 1 Mar 2011 12:46:12 +0000 (09:46 -0300)
committerRonald S. Bultje <rsbultje@gmail.com>
Mon, 7 Mar 2011 17:25:36 +0000 (12:25 -0500)
When decoding latm config, use the corresponding aac context and its
m4ac instead of using NULL and a local variable. This fixes decoding of
audio in MPEG TS from SBTVD (the Brazillian Digital TV Sytem), when
there is no extradata. This is the case when using the decoder with
gst-ffmpeg and a GStreamer mpegts demuxer.

Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
libavcodec/aacdec.c

index 81a94f2..6317e42 100644 (file)
@@ -2248,7 +2248,6 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
                                              GetBitContext *gb)
 {
     AVCodecContext *avctx = latmctx->aac_ctx.avctx;
                                              GetBitContext *gb)
 {
     AVCodecContext *avctx = latmctx->aac_ctx.avctx;
-    MPEG4AudioConfig m4ac;
     int  config_start_bit = get_bits_count(gb);
     int     bits_consumed, esize;
 
     int  config_start_bit = get_bits_count(gb);
     int     bits_consumed, esize;
 
@@ -2258,7 +2257,8 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx,
         return AVERROR_INVALIDDATA;
     } else {
         bits_consumed =
         return AVERROR_INVALIDDATA;
     } else {
         bits_consumed =
-            decode_audio_specific_config(NULL, avctx, &m4ac,
+            decode_audio_specific_config(&latmctx->aac_ctx, avctx,
+                                         &latmctx->aac_ctx.m4ac,
                                          gb->buffer + (config_start_bit / 8),
                                          get_bits_left(gb) / 8);
 
                                          gb->buffer + (config_start_bit / 8),
                                          get_bits_left(gb) / 8);