diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-22 14:21:26 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-22 15:30:19 -0400 |
commit | c76c4de1232531b80c4f6bdf7415771c326d5e92 (patch) | |
tree | 05e3b19d02855900ced0cca184566e6b8c493809 | |
parent | b290bca91aeb047d03841bd1897c1cd0ca6d5344 (diff) | |
download | opus-c76c4de1232531b80c4f6bdf7415771c326d5e92.tar.gz |
Avoid overflowing on ridiculously large energy
-rw-r--r-- | celt/bands.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/celt/bands.c b/celt/bands.c index ae03072e..61e2d4ca 100644 --- a/celt/bands.c +++ b/celt/bands.c @@ -224,7 +224,7 @@ void denormalise_bands(const CELTMode *m, const celt_norm * OPUS_RESTRICT X, #endif j=M*eBands[i]; band_end = M*eBands[i+1]; - lg = ADD16(bandLogE[i], SHL16((opus_val16)eMeans[i],6)); + lg = SATURATE16(ADD32(bandLogE[i], SHL32((opus_val32)eMeans[i],6))); #ifndef FIXED_POINT g = celt_exp2(lg); #else |