summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2016-07-22 14:21:26 -0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2016-07-22 15:30:19 -0400
commitc76c4de1232531b80c4f6bdf7415771c326d5e92 (patch)
tree05e3b19d02855900ced0cca184566e6b8c493809
parentb290bca91aeb047d03841bd1897c1cd0ca6d5344 (diff)
downloadopus-c76c4de1232531b80c4f6bdf7415771c326d5e92.tar.gz
Avoid overflowing on ridiculously large energy
-rw-r--r--celt/bands.c2
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