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