ref: 223657b51b0a74e8bc0b6e15841b61c08776ee5b
parent: 52ded42ad9da32119c86e836ed603fe5c3d29f9f
author: Jean-Marc Valin <[email protected]>
date: Sun Jul 24 13:49:58 EDT 2016
Tighter bound in filter control in PLC We can't use the attenuation since it doesn't apply to the memory
--- a/celt/celt_decoder.c
+++ b/celt/celt_decoder.c
@@ -641,13 +641,13 @@
#ifdef FIXED_POINT
/* For fixed-point, apply bandwidth expansion until we can guarantee that
no overflow can happen in the IIR filter. This means:
- attenuation*32768*sum(abs(filter)) < 2^31 */
+ 32768*sum(abs(filter)) < 2^31 */
while (1) {
opus_val16 tmp=Q15ONE;
opus_val32 sum=QCONST16(1., SIG_SHIFT);
for (i=0;i<LPC_ORDER;i++)
sum += ABS16(lpc[c*LPC_ORDER+i]);
- if (MULT16_32_Q15(attenuation, sum) < 65535) break;
+ if (sum < 65535) break;
for (i=0;i<LPC_ORDER;i++)
{
tmp = MULT16_16_Q15(QCONST16(.99f,15), tmp);