aacdec: Avoid unneeded reinit due to ADTS headers
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 17 Nov 2011 16:42:47 +0000 (17:42 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 17 Nov 2011 17:11:41 +0000 (18:11 +0100)
Fixes Ticket 662

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/aacdec.c

index 117cd58..2166928 100644 (file)
@@ -2081,7 +2081,7 @@ static int parse_adts_frame_header(AACContext *ac, GetBitContext *gb)
 
     size = avpriv_aac_parse_header(gb, &hdr_info);
     if (size > 0) {
-        if (hdr_info.chan_config) {
+        if (hdr_info.chan_config && (hdr_info.chan_config!=ac->m4ac.chan_config || ac->m4ac.sample_rate!=hdr_info.sample_rate)) {
             enum ChannelPosition new_che_pos[4][MAX_ELEM_ID];
             memset(new_che_pos, 0, 4 * MAX_ELEM_ID * sizeof(new_che_pos[0][0]));
             ac->m4ac.chan_config = hdr_info.chan_config;