celp filters: Do not read earlier than the start of the 'out' vector.
authorAlex Converse <alex.converse@gmail.com>
Fri, 4 May 2012 17:27:03 +0000 (10:27 -0700)
committerAlex Converse <alex.converse@gmail.com>
Fri, 4 May 2012 17:55:31 +0000 (10:55 -0700)
CC: libav-stable@libav.org
libavcodec/celp_filters.c

index 25a6744..849cda4 100644 (file)
@@ -133,9 +133,8 @@ void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
         out2 -= val * old_out2;
         out3 -= val * old_out3;
 
-        old_out3 = out[-5];
-
         for (i = 5; i <= filter_length; i += 2) {
+            old_out3 = out[-i];
             val = filter_coeffs[i-1];
 
             out0 -= val * old_out3;
@@ -154,7 +153,6 @@ void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
 
             FFSWAP(float, old_out0, old_out2);
             old_out1 = old_out3;
-            old_out3 = out[-i-2];
         }
 
         tmp0 = out0;