diff options
author | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2007-12-08 17:19:36 +0300 |
---|---|---|
committer | Jean-Marc Valin <jean-marc.valin@usherbrooke.ca> | 2007-12-08 17:19:36 +0300 |
commit | 11f01729e636b0f8a8c6258cfbaa0ddf102da64a (patch) | |
tree | d73d6be40e45616a8d82e59415dee25083636ed7 | |
parent | 06ee7f9083335128a0ad72c8dcbdad834e823e7b (diff) |
Some cleaning up, a few less warnings and the decoder no longer does anv0.0.1
infinitete loop in Laplace decoding when the data is corrupted.
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | libcelt/bands.c | 4 | ||||
-rw-r--r-- | libcelt/celt.c | 7 | ||||
-rw-r--r-- | libcelt/testcelt.c | 1 | ||||
-rw-r--r-- | libcelt/vq.c | 2 | ||||
-rw-r--r-- | libentcode/laplace.c | 8 |
6 files changed, 12 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac index ac39dde..2ccfa82 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ AM_CONFIG_HEADER([config.h]) CELT_MAJOR_VERSION=0 CELT_MINOR_VERSION=0 -CELT_MICRO_VERSION=0 +CELT_MICRO_VERSION=1 CELT_EXTRA_VERSION= CELT_VERSION=$CELT_MAJOR_VERSION.$CELT_MINOR_VERSION.$CELT_MICRO_VERSION$CELT_EXTRA_VERSION diff --git a/libcelt/bands.c b/libcelt/bands.c index 6a32137..131692f 100644 --- a/libcelt/bands.c +++ b/libcelt/bands.c @@ -155,7 +155,7 @@ void quant_bands(const CELTMode *m, float *X, float *P, ec_enc *enc) for (i=0;i<m->nbEBands;i++) { - int q, id; + int q; q = m->nbPulses[i]; if (q>0) { float n = sqrt(B*(eBands[i+1]-eBands[i])); @@ -185,7 +185,7 @@ void unquant_bands(const CELTMode *m, float *X, float *P, ec_dec *dec) for (i=0;i<m->nbEBands;i++) { - int q, id; + int q; q = m->nbPulses[i]; if (q>0) { float n = sqrt(B*(eBands[i+1]-eBands[i])); diff --git a/libcelt/celt.c b/libcelt/celt.c index 26dff19..5d0cfca 100644 --- a/libcelt/celt.c +++ b/libcelt/celt.c @@ -390,16 +390,13 @@ void celt_decoder_destroy(CELTDecoder *st) celt_free(st); } -int celt_decode_lost(CELTDecoder *st, short *pcm) +static void celt_decode_lost(CELTDecoder *st, short *pcm) { int i, N, B; N = st->block_size; B = st->nb_blocks; float X[B*N]; /**< Interleaved signal MDCTs */ - float P[B*N]; /**< Interleaved pitch MDCTs*/ - float bandE[st->mode->nbEBands]; - float gains[st->mode->nbPBands]; int pitch_index; pitch_index = st->last_pitch_index; @@ -448,7 +445,7 @@ int celt_decode(CELTDecoder *st, char *data, int len, short *pcm) ec_dec_init(&dec,&buf); /* Get the pitch index */ - pitch_index = ec_dec_uint(&dec, MAX_PERIOD-(B+1)*N);; + pitch_index = ec_dec_uint(&dec, MAX_PERIOD-(B+1)*N); st->last_pitch_index = pitch_index; /* Get band energies */ diff --git a/libcelt/testcelt.c b/libcelt/testcelt.c index b7abc61..ef62457 100644 --- a/libcelt/testcelt.c +++ b/libcelt/testcelt.c @@ -32,6 +32,7 @@ #include "celt.h" #include <stdio.h> +#include <stdlib.h> #define FRAME_SIZE 256 #define NBLOCKS 2 diff --git a/libcelt/vq.c b/libcelt/vq.c index 701e219..54d0ee0 100644 --- a/libcelt/vq.c +++ b/libcelt/vq.c @@ -303,7 +303,7 @@ void alg_unquant(float *x, int N, int K, float *p, ec_dec *dec) void copy_unquant(float *x, int N, int K, float *Y, int B, int N0, ec_dec *dec) { - int i,j; + int j; int sign; float s; int best; diff --git a/libentcode/laplace.c b/libentcode/laplace.c index b06b5ff..8fac282 100644 --- a/libentcode/laplace.c +++ b/libentcode/laplace.c @@ -31,7 +31,6 @@ #include "entenc.h" #include "entdec.h" -#include <stdio.h> static int ec_laplace_get_total(int decay) { @@ -83,7 +82,7 @@ int ec_laplace_decode(ec_dec *dec, int decay) fl = 0; fs = 1<<15; fh = fs; - while (fm >= fh) + while (fm >= fh && fs != 0) { fl = fh; fs = (fs*decay)>>14; @@ -100,12 +99,15 @@ int ec_laplace_decode(ec_dec *dec, int decay) fh -= fs; } } - //printf ("fl/fh: %d/%d\n", fl, fh); + /* Preventing an infinite loop in case something screws up in the decoding */ + if (fl==fh) + fl--; ec_dec_update(dec, fl, fh, ft); return val; } #if 0 +#include <stdio.h> int main() { int val; |