diff options
author | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2014-06-19 01:06:32 +0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2014-06-19 01:06:32 +0400 |
commit | a88d8365d42e5369777afa496b43ea88a1aa9106 (patch) | |
tree | b047eebee40900f7c726dc99ccdf3bbd114c819a /silk/sum_sqr_shift.c | |
parent | f396c08f772a5ad4b364a9a2104b4af3678b7428 (diff) |
Fixes a bug in silk_sum_sqr_shift() that was causing issues with Burg.
When an overflow happened in silk_sum_sqr_shift(), the sample pair causing
the overflow would be counted twice. This would lead to the C0 in
silk_burg_modified() being too large and cause problems on loud, tonal
signals. Thanks to Marcello Caramma for tracking down the problem.
Diffstat (limited to 'silk/sum_sqr_shift.c')
-rw-r--r-- | silk/sum_sqr_shift.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/silk/sum_sqr_shift.c b/silk/sum_sqr_shift.c index 12514c99..129df191 100644 --- a/silk/sum_sqr_shift.c +++ b/silk/sum_sqr_shift.c @@ -53,6 +53,7 @@ void silk_sum_sqr_shift( /* Scale down */ nrg = (opus_int32)silk_RSHIFT_uint( (opus_uint32)nrg, 2 ); shft = 2; + i+=2; break; } } |