From 95becbeec8dba611fc6a152198c3c43fb31973aa Mon Sep 17 00:00:00 2001 From: Gregory Maxwell <greg@xiph.org> Date: Thu, 3 Feb 2011 21:06:43 -0500 Subject: [PATCH] This fixes the frame_size check on the encoder and decoder and removes some unused variable warnings when compiling without custom modes. --- libcelt/celt.c | 8 ++++---- libcelt/modes.c | 4 +++- libcelt/modes.h | 2 -- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/libcelt/celt.c b/libcelt/celt.c index 8995b7ae..bfc15614 100644 --- a/libcelt/celt.c +++ b/libcelt/celt.c @@ -923,10 +923,10 @@ int celt_encode_with_ec_float(CELTEncoder * restrict st, const celt_sig * pcm, i return CELT_BAD_ARG; frame_size *= st->upsample; - for (LM=0;LM<4;LM++) + for (LM=0;LM<=st->mode->maxLM;LM++) if (st->mode->shortMdctSize<<LM==frame_size) break; - if (LM>=MAX_CONFIG_SIZES) + if (LM>st->mode->maxLM) return CELT_BAD_ARG; M=1<<LM; N = M*st->mode->shortMdctSize; @@ -2178,10 +2178,10 @@ int celt_decode_with_ec_float(CELTDecoder * restrict st, const unsigned char *da return CELT_BAD_ARG; frame_size *= st->downsample; - for (LM=0;LM<4;LM++) + for (LM=0;LM<=st->mode->maxLM;LM++) if (st->mode->shortMdctSize<<LM==frame_size) break; - if (LM>=MAX_CONFIG_SIZES) + if (LM>st->mode->maxLM) return CELT_BAD_ARG; M=1<<LM; diff --git a/libcelt/modes.c b/libcelt/modes.c index ca509921..f33cfab3 100644 --- a/libcelt/modes.c +++ b/libcelt/modes.c @@ -247,11 +247,13 @@ static void compute_allocation_table(CELTMode *mode) CELTMode *celt_mode_create(celt_int32 Fs, int frame_size, int *error) { int i; - int res; CELTMode *mode=NULL; +#ifdef CUSTOM_MODES + int res; celt_word16 *window; celt_int16 *logN; int LM; +#endif #ifdef STDIN_TUNING scanf("%d ", &MIN_BINS); scanf("%d ", &BITALLOC_SIZE); diff --git a/libcelt/modes.h b/libcelt/modes.h index 43bdccc0..d874d7b8 100644 --- a/libcelt/modes.h +++ b/libcelt/modes.h @@ -41,8 +41,6 @@ #include "entenc.h" #include "entdec.h" -#define MAX_CONFIG_SIZES 5 - #define CELT_BITSTREAM_VERSION 0x8000000f #define MAX_PERIOD 1024 -- GitLab