aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Converse <alex.converse@gmail.com>2012-05-04 10:27:03 -0700
committerReinhard Tartler <siretart@tauware.de>2012-05-06 21:40:58 +0200
commit08c81f7365af96c1655767e68d6ec85bea50600c (patch)
treef07a3a2550fcb1ce567743864d8757d68ca0489a
parent50073e2395522b6e2b8698ff0dd06ffaf8cbf8ce (diff)
downloadffmpeg-08c81f7365af96c1655767e68d6ec85bea50600c.tar.gz
celp filters: Do not read earlier than the start of the 'out' vector.
CC: libav-stable@libav.org (cherry picked from commit 37ddd3833219fa7b913fff3f5cccc6878b047e6b) Signed-off-by: Reinhard Tartler <siretart@tauware.de> (cherry picked from commit 9ea94c44b1b414ab3bc6e9220ebb77621423ca38) Signed-off-by: Reinhard Tartler <siretart@tauware.de>
-rw-r--r--libavcodec/celp_filters.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/libavcodec/celp_filters.c b/libavcodec/celp_filters.c
index 25a6744b04..849cda439e 100644
--- a/libavcodec/celp_filters.c
+++ b/libavcodec/celp_filters.c
@@ -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;