diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-25 00:49:58 +0300 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2016-07-25 00:49:58 +0300 |
commit | 9f4ba560590d452669c94f6ec537ea4d1efcd898 (patch) | |
tree | 40c32009c53a2daa2a935d85b8dfa8071d9f471e | |
parent | 23bfe2069261c48b524c29e6ba5f8328572fd371 (diff) |
Tighter bound in filter control in PLC
We can't use the attenuation since it doesn't apply to the memory
-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); |