diff options
Diffstat (limited to 'lib/rbcodec/codecs/libopus/celt/quant_bands.c')
-rw-r--r-- | lib/rbcodec/codecs/libopus/celt/quant_bands.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/rbcodec/codecs/libopus/celt/quant_bands.c b/lib/rbcodec/codecs/libopus/celt/quant_bands.c index 79685e17cb..ac6952c266 100644 --- a/lib/rbcodec/codecs/libopus/celt/quant_bands.c +++ b/lib/rbcodec/codecs/libopus/celt/quant_bands.c | |||
@@ -312,6 +312,7 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, | |||
312 | opus_int32 tell_intra; | 312 | opus_int32 tell_intra; |
313 | opus_uint32 nstart_bytes; | 313 | opus_uint32 nstart_bytes; |
314 | opus_uint32 nintra_bytes; | 314 | opus_uint32 nintra_bytes; |
315 | opus_uint32 save_bytes; | ||
315 | int badness2; | 316 | int badness2; |
316 | VARDECL(unsigned char, intra_bits); | 317 | VARDECL(unsigned char, intra_bits); |
317 | 318 | ||
@@ -322,7 +323,10 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, | |||
322 | nstart_bytes = ec_range_bytes(&enc_start_state); | 323 | nstart_bytes = ec_range_bytes(&enc_start_state); |
323 | nintra_bytes = ec_range_bytes(&enc_intra_state); | 324 | nintra_bytes = ec_range_bytes(&enc_intra_state); |
324 | intra_buf = ec_get_buffer(&enc_intra_state) + nstart_bytes; | 325 | intra_buf = ec_get_buffer(&enc_intra_state) + nstart_bytes; |
325 | ALLOC(intra_bits, nintra_bytes-nstart_bytes, unsigned char); | 326 | save_bytes = nintra_bytes-nstart_bytes; |
327 | if (save_bytes == 0) | ||
328 | save_bytes = ALLOC_NONE; | ||
329 | ALLOC(intra_bits, save_bytes, unsigned char); | ||
326 | /* Copy bits from intra bit-stream */ | 330 | /* Copy bits from intra bit-stream */ |
327 | OPUS_COPY(intra_bits, intra_buf, nintra_bytes - nstart_bytes); | 331 | OPUS_COPY(intra_bits, intra_buf, nintra_bytes - nstart_bytes); |
328 | 332 | ||