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:
authorJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2007-12-08 17:19:36 +0300
committerJean-Marc Valin <jean-marc.valin@usherbrooke.ca>2007-12-08 17:19:36 +0300
commit11f01729e636b0f8a8c6258cfbaa0ddf102da64a (patch)
treed73d6be40e45616a8d82e59415dee25083636ed7
parent06ee7f9083335128a0ad72c8dcbdad834e823e7b (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.ac2
-rw-r--r--libcelt/bands.c4
-rw-r--r--libcelt/celt.c7
-rw-r--r--libcelt/testcelt.c1
-rw-r--r--libcelt/vq.c2
-rw-r--r--libentcode/laplace.c8
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;