From 549a3c8d980fbdea9e5ab774daa4f6f559bbde54 Mon Sep 17 00:00:00 2001 From: Jean-Yes Avenard Date: Thu, 5 Apr 2012 17:45:24 +1000 Subject: [PATCH] Fix AAC decoding audio corruption aacdec:only overwrite configuration if theres a actual change. Backport ffmpeg:b4d0e7804dbeeca179198791acddf3058771a32a --- mythtv/external/FFmpeg/libavcodec/aacdec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mythtv/external/FFmpeg/libavcodec/aacdec.c b/mythtv/external/FFmpeg/libavcodec/aacdec.c index 214812d5642..dfd07af47ba 100644 --- a/mythtv/external/FFmpeg/libavcodec/aacdec.c +++ b/mythtv/external/FFmpeg/libavcodec/aacdec.c @@ -2294,8 +2294,8 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx, GetBitContext *gb, int asclen) { AVCodecContext *avctx = latmctx->aac_ctx.avctx; - MPEG4AudioConfig m4ac; AACContext *ac= &latmctx->aac_ctx; + MPEG4AudioConfig m4ac=ac->m4ac; int config_start_bit = get_bits_count(gb); int bits_consumed, esize; @@ -2311,7 +2311,8 @@ static int latm_decode_audio_specific_config(struct LATMContext *latmctx, if (bits_consumed < 0) return AVERROR_INVALIDDATA; - ac->m4ac= m4ac; + if(ac->m4ac.sample_rate != m4ac.sample_rate || m4ac.chan_config != ac->m4ac.chan_config) + ac->m4ac= m4ac; esize = (bits_consumed+7) / 8;