From dcacb73c33bd0b9c4be2b88d6449b0f5543c7f7d Mon Sep 17 00:00:00 2001 From: Jean-Marc Valin Date: Tue, 14 Dec 2010 13:39:30 -0500 Subject: [PATCH] Preventing negative bit allocation --- libcelt/rate.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/libcelt/rate.c b/libcelt/rate.c index a1a6c252..434c0b0f 100644 --- a/libcelt/rate.c +++ b/libcelt/rate.c @@ -207,8 +207,14 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, } for (i=0;i<*skip;i++) { - psum = psum - bits[codedBands-1] + ((C+1)<= C<> BITRES)-1; - + { + ebits[j] = IMAX(0,(bits[j]/C >> BITRES)-1); + fine_priority[j] = (ebits[j]+1)*C<= bits[j]; + } /* Make sure not to bust */ if (C*ebits[j] > (bits[j]>>BITRES)) ebits[j] = bits[j]/C >> BITRES;