Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/quite/celt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Maxwell <greg@xiph.org>2011-02-14 23:27:52 +0300
committerJean-Marc Valin <jean-marc.valin@octasic.com>2011-02-14 23:44:31 +0300
commit5b236756a3243b5ea71f8910bbb09f319c5e4e15 (patch)
tree913cf84270a9b4fdcbf6d6d13718ce899f172e42
parentb3c05b6be2a6579af55a625903e9e70687a4d77f (diff)
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).
-rw-r--r--libcelt/bands.c2
-rw-r--r--libcelt/quant_bands.c12
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 (++j<band_end);
}
- for (i=M*eBands[m->nbEBands];i<N;i++)
+ for (i=M*eBands[end];i<N;i++)
*f++ = 0;
} while (++c<C);
}
diff --git a/libcelt/quant_bands.c b/libcelt/quant_bands.c
index 1de7d67..9aa05fe 100644
--- a/libcelt/quant_bands.c
+++ b/libcelt/quant_bands.c
@@ -272,7 +272,7 @@ void quant_coarse_energy(const CELTMode *m, int start, int end, int effEnd,
int badness1=0;
SAVE_STACK;
- intra = force_intra || (*delayedIntra && nbAvailableBytes > 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;
}