diff options
author | Jean-Michel Trivi <jmtrivi@google.com> | 2018-12-26 18:18:55 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-12-26 18:18:55 -0800 |
commit | 3f50499c9c8f95725c13e7eee25a3439822c7307 (patch) | |
tree | a46651fe03dbdc14c9cfc7fa56e638a37fe3a6a9 /libAACdec/src/usacdec_acelp.cpp | |
parent | 0694a4e1e8ee8223325c67500a7f689a14df0eb1 (diff) | |
parent | 18d4dcf2551245c887962e34130cb24414b0b969 (diff) | |
download | fdk-aac-3f50499c9c8f95725c13e7eee25a3439822c7307.tar.gz fdk-aac-3f50499c9c8f95725c13e7eee25a3439822c7307.tar.bz2 fdk-aac-3f50499c9c8f95725c13e7eee25a3439822c7307.zip |
Merge "Prevent overflow in usac filters" am: 4053380094 am: eaad782db3
am: 18d4dcf255
Change-Id: Id1736dd6af5b656c158896f6d9fcb117231351a4
Diffstat (limited to 'libAACdec/src/usacdec_acelp.cpp')
-rw-r--r-- | libAACdec/src/usacdec_acelp.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libAACdec/src/usacdec_acelp.cpp b/libAACdec/src/usacdec_acelp.cpp index af1f488..9fecebf 100644 --- a/libAACdec/src/usacdec_acelp.cpp +++ b/libAACdec/src/usacdec_acelp.cpp @@ -579,11 +579,11 @@ void Syn_filt(const FIXP_LPC a[], /* (i) : a[m] prediction coefficients Q12 */ L_tmp = (FIXP_DBL)0; for (j = 0; j < M_LP_FILTER_ORDER; j++) { - L_tmp -= fMultDiv2(a[j], y[i - (j + 1)]); + L_tmp -= fMultDiv2(a[j], y[i - (j + 1)]) >> (LP_FILTER_SCALE - 1); } - L_tmp = scaleValue(L_tmp, a_exp + 1); - y[i] = L_tmp + x[i]; + L_tmp = scaleValue(L_tmp, a_exp + LP_FILTER_SCALE); + y[i] = fAddSaturate(L_tmp, x[i]); } return; @@ -631,10 +631,10 @@ void E_UTIL_residu(const FIXP_LPC *a, const INT a_exp, FIXP_DBL *x, FIXP_DBL *y, s = (FIXP_DBL)0; for (j = 0; j < M_LP_FILTER_ORDER; j++) { - s += fMultDiv2(a[j], x[i - j - 1]); + s += fMultDiv2(a[j], x[i - j - 1]) >> (LP_FILTER_SCALE - 1); } - s = scaleValue(s, a_exp + 1); + s = scaleValue(s, a_exp + LP_FILTER_SCALE); y[i] = fAddSaturate(s, x[i]); } |