diff --git a/celt/rate.c b/celt/rate.c index 7f7ad3fa0fec91f64189ed6d08d47eae7d47ab62..58a61f7ba689aade9363f5c32d1f8a39ee89d581 100644 --- a/celt/rate.c +++ b/celt/rate.c @@ -189,7 +189,7 @@ void compute_pulse_cache(CELTMode *m, int LM) /* Offset the number of qtheta bits by log2(N)/2 + QTHETA_OFFSET compared to their "fair share" of total/N */ - offset = ((m->logN[j]+((LM0+k)<<BITRES))>>1)-QTHETA_OFFSET; + offset = ((m->logN[j]+(opus_int32)((opus_uint32)(LM0+k)<<BITRES))>>1)-QTHETA_OFFSET; /* The number of qtheta bits we'll allocate if the remainder is to be max_bits. The average measured cost for theta is 0.89701 times qb,