diff --git a/celt/bands.c b/celt/bands.c index 64622eae..b8a27044 100644 --- a/celt/bands.c +++ b/celt/bands.c @@ -751,16 +751,13 @@ static unsigned quant_band(int encode, const CELTMode *m, int i, celt_norm *X, c cache = m->cache.bits + m->cache.index[(LM+1)*m->nbEBands+i]; if (!stereo && LM != -1 && b > cache[cache[0]]+12 && N>2) { - if (LM>0 || (N&1)==0) - { - N >>= 1; - Y = X+N; - split = 1; - LM -= 1; - if (B==1) - fill = (fill&1)|(fill<<1); - B = (B+1)>>1; - } + N >>= 1; + Y = X+N; + split = 1; + LM -= 1; + if (B==1) + fill = (fill&1)|(fill<<1); + B = (B+1)>>1; } if (split) diff --git a/celt/rate.c b/celt/rate.c index 8afacdae..c1ad6908 100644 --- a/celt/rate.c +++ b/celt/rate.c @@ -165,9 +165,9 @@ void compute_pulse_cache(CELTMode *m, int LM) int qb; int k; LM0 = 0; - /* Even-sized bands bigger than N=2 can be split one more - time. */ - if (N0 > 2 && !(N0&1)) + /* Even-sized bands bigger than N=2 can be split one more time. + As of commit 44203907 all bands >1 are even, including custom modes.*/ + if (N0 > 2) { N0>>=1; LM0--;