diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-24 17:49:58 -0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-24 21:35:24 -0400 |
commit | 223657b51b0a74e8bc0b6e15841b61c08776ee5b (patch) | |
tree | 1a23c4f6dcfa15e374c1f2b1a52f0cc44bf6ea5d /celt | |
parent | 52ded42ad9da32119c86e836ed603fe5c3d29f9f (diff) | |
download | libopus-223657b51b0a74e8bc0b6e15841b61c08776ee5b.tar.gz |
Tighter bound in filter control in PLC
We can't use the attenuation since it doesn't apply to the memory
Diffstat (limited to 'celt')
-rw-r--r-- | celt/celt_decoder.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/celt/celt_decoder.c b/celt/celt_decoder.c index 8a3b3485..20ededff 100644 --- a/celt/celt_decoder.c +++ b/celt/celt_decoder.c @@ -641,13 +641,13 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) #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); |