summaryrefslogtreecommitdiff
path: root/apps/codecs/libfaad/bits.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/codecs/libfaad/bits.c')
-rw-r--r--apps/codecs/libfaad/bits.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/apps/codecs/libfaad/bits.c b/apps/codecs/libfaad/bits.c
index a010e83..f1a3623 100644
--- a/apps/codecs/libfaad/bits.c
+++ b/apps/codecs/libfaad/bits.c
@@ -33,9 +33,10 @@
#include "bits.h"
/* Need to be large enough to fit the largest compressed sample in a file.
- * Samples a little larger than 1 KB observed in a 256 kbps file.
+ * Samples were observed to need up to 1500 bytes (400 kbps nero aac).
*/
-uint8_t static_buffer[2048];
+#define BUFFER_SIZE 2048
+uint8_t static_buffer[BUFFER_SIZE] IBSS_ATTR;
/* initialize buffer, call once before first getbits or showbits */
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)
memset(ld, 0, sizeof(bitfile));
- if (buffer_size == 0 || _buffer == NULL)
+ if (buffer_size == 0 || _buffer == NULL || (buffer_size+12)>BUFFER_SIZE)
{
ld->error = 1;
ld->no_more_reading = 1;