ref: ad3d813f010ab15e032bc0b552ea9dace664185f
parent: 568326bfe2c35aef831b1975fa30f80d8a79508a
author: Jean-Marc Valin <[email protected]>
date: Sat Jan 22 16:22:03 EST 2011
Stop uselessly calling haar1() when resynth=0 This was computing on uninitialized data (though the result was never used)
--- a/libcelt/bands.c
+++ b/libcelt/bands.c
@@ -1003,9 +1003,9 @@
/* Finally do the actual quantization */
if (encode)
- cm = alg_quant(X, N, K, spread, B, lowband, resynth, (ec_enc*)ec, gain);
+ cm = alg_quant(X, N, K, spread, B, resynth, (ec_enc*)ec, gain);
else
- cm = alg_unquant(X, N, K, spread, B, lowband, (ec_dec*)ec, gain);
+ cm = alg_unquant(X, N, K, spread, B, (ec_dec*)ec, gain);
} else {
/* If there's no pulse, fill the band anyway */
int j;
@@ -1157,7 +1157,7 @@
b = 0;
}
- if (M*eBands[i]-N >= M*eBands[start] && (update_lowband || lowband_offset==0))
+ if (resynth && M*eBands[i]-N >= M*eBands[start] && (update_lowband || lowband_offset==0))
lowband_offset = i;
tf_change = tf_res[i];
--- a/libcelt/vq.c
+++ b/libcelt/vq.c
@@ -175,7 +175,7 @@
return collapse_mask;
}
-unsigned alg_quant(celt_norm *X, int N, int K, int spread, int B, celt_norm *lowband,
+unsigned alg_quant(celt_norm *X, int N, int K, int spread, int B,
int resynth, ec_enc *enc, celt_word16 gain)
{
VARDECL(celt_norm, y);
@@ -340,7 +340,7 @@
/** Decode pulse vector and combine the result with the pitch vector to produce
the final normalised signal in the current band. */
unsigned alg_unquant(celt_norm *X, int N, int K, int spread, int B,
- celt_norm *lowband, ec_dec *dec, celt_word16 gain)
+ ec_dec *dec, celt_word16 gain)
{
int i;
celt_word32 Ryy;
--- a/libcelt/vq.h
+++ b/libcelt/vq.h
@@ -52,7 +52,7 @@
* @param enc Entropy encoder state
* @ret A mask indicating which blocks in the band received pulses
*/
-unsigned alg_quant(celt_norm *X, int N, int K, int spread, int B, celt_norm *lowband,
+unsigned alg_quant(celt_norm *X, int N, int K, int spread, int B,
int resynth, ec_enc *enc, celt_word16 gain);
/** Algebraic pulse decoder
@@ -64,7 +64,7 @@
* @ret A mask indicating which blocks in the band received pulses
*/
unsigned alg_unquant(celt_norm *X, int N, int K, int spread, int B,
- celt_norm *lowband, ec_dec *dec, celt_word16 gain);
+ ec_dec *dec, celt_word16 gain);
void renormalise_vector(celt_norm *X, int N, celt_word16 gain);