The AAC frame header uses 13 bits for the frame size, so the buffer should
authorMåns Rullgård <mans@mansr.com>
Fri, 16 Jun 2006 20:41:33 +0000 (20:41 +0000)
committerMåns Rullgård <mans@mansr.com>
Fri, 16 Jun 2006 20:41:33 +0000 (20:41 +0000)
have room for such a frame.  A frame that large seems unlikely in a valid
file, but leaving room for it spares us the need to check it elsewhere.
Moving the buffer to the end of the struct made debugging this easier.

Originally committed as revision 5487 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/parser.c

index 91f6782..7281516 100644 (file)
@@ -729,12 +729,12 @@ static int mpegaudio_parse(AVCodecParserContext *s1,
 
 /* also used for ADTS AAC */
 typedef struct AC3ParseContext {
 
 /* also used for ADTS AAC */
 typedef struct AC3ParseContext {
-    uint8_t inbuf[4096]; /* input buffer */
     uint8_t *inbuf_ptr;
     int frame_size;
     int header_size;
     int (*sync)(const uint8_t *buf, int *channels, int *sample_rate,
                 int *bit_rate, int *samples);
     uint8_t *inbuf_ptr;
     int frame_size;
     int header_size;
     int (*sync)(const uint8_t *buf, int *channels, int *sample_rate,
                 int *bit_rate, int *samples);
+    uint8_t inbuf[8192]; /* input buffer */
 } AC3ParseContext;
 
 #define AC3_HEADER_SIZE 7
 } AC3ParseContext;
 
 #define AC3_HEADER_SIZE 7