Merge "Prevent energy overflow in acelp calc_period_factor()" am: eb9319afb2
am: 196f1ce484
Change-Id: I4bcc2e7ff145bffb7f11a090e8a048e9c2d11d76
diff --git a/libAACdec/src/conceal.cpp b/libAACdec/src/conceal.cpp
index cc6de75..5895cb8 100644
--- a/libAACdec/src/conceal.cpp
+++ b/libAACdec/src/conceal.cpp
@@ -2081,11 +2081,11 @@
noiseVal = FX_DBL2FX_PCM(fMult(noiseValLong, TDNoiseAtt));
/* add filtered noise - check for clipping, before */
- if (pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal &&
- noiseVal > (FIXP_PCM)0) {
+ if (noiseVal > (FIXP_PCM)0 &&
+ pcmdata[ii] > (FIXP_PCM)MAXVAL_FIXP_PCM - noiseVal) {
noiseVal = noiseVal * (FIXP_PCM)-1;
- } else if (pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal &&
- noiseVal < (FIXP_PCM)0) {
+ } else if (noiseVal < (FIXP_PCM)0 &&
+ pcmdata[ii] < (FIXP_PCM)MINVAL_FIXP_PCM - noiseVal) {
noiseVal = noiseVal * (FIXP_PCM)-1;
}