From 5b236756a3243b5ea71f8910bbb09f319c5e4e15 Mon Sep 17 00:00:00 2001 From: Gregory Maxwell Date: Mon, 14 Feb 2011 15:27:52 -0500 Subject: Correct a number of uninitialized value problems when end!=nbEBands. Now 8khz/20ms audio can be decoded at 48kHz and vice versa (with the PF turned off). --- libcelt/bands.c | 2 +- libcelt/quant_bands.c | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libcelt/bands.c b/libcelt/bands.c index 1c8fe25..1948bae 100644 --- a/libcelt/bands.c +++ b/libcelt/bands.c @@ -202,7 +202,7 @@ void denormalise_bands(const CELTMode *m, const celt_norm * restrict X, celt_sig x++; } while (++jnbEBands];i end*C); + intra = force_intra || (*delayedIntra && nbAvailableBytes > (end-start)*C); if (/*shortBlocks || */intra_decision(eBands, oldEBands, start, effEnd, m->nbEBands, C)) *delayedIntra = 1; else @@ -295,7 +295,7 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, ALLOC(oldEBands_intra, C*m->nbEBands, celt_word16); ALLOC(error_intra, C*m->nbEBands, celt_word16); - CELT_COPY(oldEBands_intra, oldEBands, C*end); + CELT_COPY(oldEBands_intra, oldEBands, C*m->nbEBands); if (two_pass || intra) { @@ -335,12 +335,12 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd, /* Copy intra bits to bit-stream */ CELT_COPY(ec_get_buffer(&enc_intra_state) + nstart_bytes, intra_bits, nintra_bytes - nstart_bytes); - CELT_COPY(oldEBands, oldEBands_intra, C*end); - CELT_COPY(error, error_intra, C*end); + CELT_COPY(oldEBands, oldEBands_intra, C*m->nbEBands); + CELT_COPY(error, error_intra, C*m->nbEBands); } } else { - CELT_COPY(oldEBands, oldEBands_intra, C*end); - CELT_COPY(error, error_intra, C*end); + CELT_COPY(oldEBands, oldEBands_intra, C*m->nbEBands); + CELT_COPY(error, error_intra, C*m->nbEBands); } RESTORE_STACK; } -- cgit v1.2.3