ref: 95becbeec8dba611fc6a152198c3c43fb31973aa
parent: a093f4df740b7680443e938775b4db2b0fa24844
author: Gregory Maxwell <[email protected]>
date: Thu Feb 3 16:06:43 EST 2011
This fixes the frame_size check on the encoder and decoder and removes some unused variable warnings when compiling without custom modes.
--- a/libcelt/celt.c
+++ b/libcelt/celt.c
@@ -923,10 +923,10 @@
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 @@
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;
--- a/libcelt/modes.c
+++ b/libcelt/modes.c
@@ -247,11 +247,13 @@
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);
--- 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