Fixes cap on gain in denormalise_bands()
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Sun, 24 Jul 2016 22:02:37 +0000 (18:02 -0400)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Mon, 25 Jul 2016 01:36:25 +0000 (21:36 -0400)
celt/bands.c

index 61e2d4c..90ac6a2 100644 (file)
@@ -241,10 +241,10 @@ void denormalise_bands(const CELTMode *m, const celt_norm * OPUS_RESTRICT X,
       /* Handle extreme gains with negative shift. */
       if (shift<0)
       {
-         /* For shift < -2 we'd be likely to overflow, so we're capping
-               the gain here. This shouldn't happen unless the bitstream is
-               already corrupted. */
-         if (shift < -2)
+         /* For shift <= -2 and g > 16384 we'd be likely to overflow, so we're
+            capping the gain here, which is equivalent to a cap of 18 on lg.
+            This shouldn't trigger unless the bitstream is already corrupted. */
+         if (shift <= -2)
          {
             g = 16384;
             shift = -2;