shithub: opus

Download patch

ref: fbed746cb2d0fee57eae090e67d148d89923f6ff
parent: c9d5bea13e3cb7381bfa897a45d8bab4e7b767a7
author: Jean-Marc Valin <jmvalin@amazon.com>
date: Thu Jul 21 22:27:34 EDT 2022

Relaxing checks for MULT16_32_QX()

MULT16_32_QX() is now implemented using a signed-unsigned multiply,
so the second argument can now have one extra bit compared to the
old signed-signed implementation.

Reviewed by Mark Harris

--- a/celt/fixed_debug.h
+++ b/celt/fixed_debug.h
@@ -491,7 +491,7 @@
       celt_assert(0);
 #endif
    }
-   if (ABS32(b)>=((opus_val32)(1)<<(15+Q)))
+   if (ABS32(b)>=((opus_int64)(1)<<(16+Q)))
    {
       fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n", Q, (int)a, (int)b, file, line);
 #ifdef FIXED_DEBUG_ASSERT
@@ -524,7 +524,7 @@
       celt_assert(0);
 #endif
    }
-   if (ABS32(b)>=((opus_int64)(1)<<(15+Q)))
+   if (ABS32(b)>=((opus_int64)(1)<<(16+Q)))
    {
       fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n\n", Q, (int)a, (int)b,file, line);
 #ifdef FIXED_DEBUG_ASSERT