Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(293)

Unified Diff: celt/rate.c

Issue 12388030: Update Opus to 1.0.2. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/opus
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « celt/quant_bands.c ('k') | celt/tests/test_unit_cwrs32.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: celt/rate.c
diff --git a/celt/rate.c b/celt/rate.c
index 32fe9ac684d8c91383d5207c1755d38402b557da..4e96787f23b5ce3db568ad92bd2eab97d15f6a85 100644
--- a/celt/rate.c
+++ b/celt/rate.c
@@ -84,7 +84,7 @@ void compute_pulse_cache(CELTMode *m, int LM)
unsigned char *bits;
unsigned char *cap;
- cindex = opus_alloc(sizeof(cache->index[0])*m->nbEBands*(LM+2));
+ cindex = (opus_int16 *)opus_alloc(sizeof(cache->index[0])*m->nbEBands*(LM+2));
cache->index = cindex;
/* Scan for all unique band sizes */
@@ -124,7 +124,7 @@ void compute_pulse_cache(CELTMode *m, int LM)
}
}
}
- bits = opus_alloc(sizeof(unsigned char)*curr);
+ bits = (unsigned char *)opus_alloc(sizeof(unsigned char)*curr);
cache->bits = bits;
cache->size = curr;
/* Compute the cache for all unique sizes */
@@ -140,7 +140,7 @@ void compute_pulse_cache(CELTMode *m, int LM)
/* Compute the maximum rate for each band at which we'll reliably use as
many bits as we ask for. */
- cache->caps = cap = opus_alloc(sizeof(cache->caps[0])*(LM+1)*2*m->nbEBands);
+ cache->caps = cap = (unsigned char *)opus_alloc(sizeof(cache->caps[0])*(LM+1)*2*m->nbEBands);
for (i=0;i<=LM;i++)
{
for (C=1;C<=2;C++)
@@ -259,7 +259,7 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, int
int alloc_floor;
opus_int32 left, percoeff;
int done;
- int balance;
+ opus_int32 balance;
SAVE_STACK;
alloc_floor = C<<BITRES;
@@ -353,7 +353,7 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, int
#ifdef FUZZING
if ((rand()&0x1) == 0)
#else
- if (band_bits > ((j<prev?7:9)*band_width<<LM<<BITRES)>>4)
+ if (codedBands<=start+2 || band_bits > ((j<prev?7:9)*band_width<<LM<<BITRES)>>4)
#endif
{
ec_enc_bit_logp(ec, 1, 1);
@@ -432,17 +432,17 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, int
int N0, N, den;
int offset;
int NClogN;
- int excess;
+ opus_int32 excess, bit;
celt_assert(bits[j] >= 0);
N0 = m->eBands[j+1]-m->eBands[j];
N=N0<<LM;
- bits[j] += balance;
+ bit = (opus_int32)bits[j]+balance;
if (N>1)
{
- excess = IMAX(bits[j]-cap[j],0);
- bits[j] -= excess;
+ excess = MAX32(bit-cap[j],0);
+ bits[j] = bit-excess;
/* Compensate for the extra DoF in stereo */
den=(C*N+ ((C==2 && N>2 && !*dual_stereo && j<*intensity) ? 1 : 0));
@@ -483,8 +483,8 @@ static inline int interp_bits2pulses(const CELTMode *m, int start, int end, int
} else {
/* For N=1, all bits go to fine energy except for a single sign bit */
- excess = IMAX(0,bits[j]-(C<<BITRES));
- bits[j] -= excess;
+ excess = MAX32(0,bit-(C<<BITRES));
+ bits[j] = bit-excess;
ebits[j] = 0;
fine_priority[j] = 1;
}
« no previous file with comments | « celt/quant_bands.c ('k') | celt/tests/test_unit_cwrs32.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698