shithub: opus

Download patch

ref: eb926680f6475dada3742ca57c6e58c9a6858ac2
parent: c803ee195996ae485ac838dc442d519724fbf861
author: Jean-Marc Valin <[email protected]>
date: Fri May 14 03:47:30 EDT 2010

Trying to prevent PVQ-level splits

We prevent as many as possible, but they can still occur if we
manage to reach the LN limit

--- a/libcelt/bands.c
+++ b/libcelt/bands.c
@@ -457,7 +457,7 @@
 
    split = stereo = Y != NULL;
 
-   if (b>(32<<BITRES) && !stereo && LM>0)
+   if (!stereo && LM>0 && !fits_in32(N, get_pulses(bits2pulses(m, m->bits[LM][i], N, b))))
    {
       N /= 2;
       Y = X+N;
@@ -667,7 +667,7 @@
 
    split = stereo = Y != NULL;
 
-   if (b>(32<<BITRES) && !stereo && LM>0)
+   if (!stereo && LM>0 && !fits_in32(N, get_pulses(bits2pulses(m, m->bits[LM][i], N, b))))
    {
       N /= 2;
       Y = X+N;