diff options
Diffstat (limited to 'lib/rbcodec/codecs/libopus/celt/modes.c')
-rw-r--r-- | lib/rbcodec/codecs/libopus/celt/modes.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/rbcodec/codecs/libopus/celt/modes.c b/lib/rbcodec/codecs/libopus/celt/modes.c index d44cb3b9de..42e68e1cb7 100644 --- a/lib/rbcodec/codecs/libopus/celt/modes.c +++ b/lib/rbcodec/codecs/libopus/celt/modes.c | |||
@@ -28,7 +28,7 @@ | |||
28 | */ | 28 | */ |
29 | 29 | ||
30 | #ifdef HAVE_CONFIG_H | 30 | #ifdef HAVE_CONFIG_H |
31 | #include "opus_config.h" | 31 | #include "config.h" |
32 | #endif | 32 | #endif |
33 | 33 | ||
34 | #include "celt.h" | 34 | #include "celt.h" |
@@ -345,6 +345,14 @@ CELTMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error) | |||
345 | mode->eBands = compute_ebands(Fs, mode->shortMdctSize, res, &mode->nbEBands); | 345 | mode->eBands = compute_ebands(Fs, mode->shortMdctSize, res, &mode->nbEBands); |
346 | if (mode->eBands==NULL) | 346 | if (mode->eBands==NULL) |
347 | goto failure; | 347 | goto failure; |
348 | #if !defined(SMALL_FOOTPRINT) | ||
349 | /* Make sure we don't allocate a band larger than our PVQ table. | ||
350 | 208 should be enough, but let's be paranoid. */ | ||
351 | if ((mode->eBands[mode->nbEBands] - mode->eBands[mode->nbEBands-1])<<LM > | ||
352 | 208) { | ||
353 | goto failure; | ||
354 | } | ||
355 | #endif | ||
348 | 356 | ||
349 | mode->effEBands = mode->nbEBands; | 357 | mode->effEBands = mode->nbEBands; |
350 | while (mode->eBands[mode->effEBands] > mode->shortMdctSize) | 358 | while (mode->eBands[mode->effEBands] > mode->shortMdctSize) |