Only read some of TNS bitstream data in the case that the TNS filter order is
authorAlex Converse <alex.converse@gmail.com>
Fri, 12 Sep 2008 14:32:49 +0000 (14:32 +0000)
committerRobert Swain <robert.swain@gmail.com>
Fri, 12 Sep 2008 14:32:49 +0000 (14:32 +0000)
non-zero as per the specification.

Patch by Alex Converse (alex converse gmail com)
Fixes another issue pertaining to issue632

Originally committed as revision 15303 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/aac.c

index cc069ed..18c2cbc 100644 (file)
@@ -629,6 +629,7 @@ static int decode_tns(AACContext * ac, TemporalNoiseShaping * tns,
                     tns->order[w][filt] = 0;
                     return -1;
                 }
+                if (tns->order[w][filt]) {
                 tns->direction[w][filt] = get_bits1(gb);
                 coef_compress = get_bits1(gb);
                 coef_len = coef_res + 3 - coef_compress;
@@ -636,6 +637,7 @@ static int decode_tns(AACContext * ac, TemporalNoiseShaping * tns,
 
                 for (i = 0; i < tns->order[w][filt]; i++)
                     tns->coef[w][filt][i] = tns_tmp2_map[tmp2_idx][get_bits(gb, coef_len)];
+                }
             }
         }
     }