diff options
Diffstat (limited to 'apps/codecs/libfaad/bits.c')
-rw-r--r-- | apps/codecs/libfaad/bits.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/apps/codecs/libfaad/bits.c b/apps/codecs/libfaad/bits.c index a010e830ed..f1a36235bd 100644 --- a/apps/codecs/libfaad/bits.c +++ b/apps/codecs/libfaad/bits.c | |||
@@ -33,9 +33,10 @@ | |||
33 | #include "bits.h" | 33 | #include "bits.h" |
34 | 34 | ||
35 | /* Need to be large enough to fit the largest compressed sample in a file. | 35 | /* Need to be large enough to fit the largest compressed sample in a file. |
36 | * Samples a little larger than 1 KB observed in a 256 kbps file. | 36 | * Samples were observed to need up to 1500 bytes (400 kbps nero aac). |
37 | */ | 37 | */ |
38 | uint8_t static_buffer[2048]; | 38 | #define BUFFER_SIZE 2048 |
39 | uint8_t static_buffer[BUFFER_SIZE] IBSS_ATTR; | ||
39 | 40 | ||
40 | /* initialize buffer, call once before first getbits or showbits */ | 41 | /* initialize buffer, call once before first getbits or showbits */ |
41 | void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size) | 42 | void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size) |
@@ -47,7 +48,7 @@ void faad_initbits(bitfile *ld, const void *_buffer, const uint32_t buffer_size) | |||
47 | 48 | ||
48 | memset(ld, 0, sizeof(bitfile)); | 49 | memset(ld, 0, sizeof(bitfile)); |
49 | 50 | ||
50 | if (buffer_size == 0 || _buffer == NULL) | 51 | if (buffer_size == 0 || _buffer == NULL || (buffer_size+12)>BUFFER_SIZE) |
51 | { | 52 | { |
52 | ld->error = 1; | 53 | ld->error = 1; |
53 | ld->no_more_reading = 1; | 54 | ld->no_more_reading = 1; |