Do not discard mp3 frames in the parser after a broken frame.
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 5 May 2009 13:46:50 +0000 (13:46 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 5 May 2009 13:46:50 +0000 (13:46 +0000)
Fixes issue1044.
This may cause regressions with broken streams, if you find any, please report!

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

libavcodec/mpegaudio_parser.c

index 47a78df..cc2d240 100644 (file)
@@ -223,10 +223,8 @@ static int mpegaudio_parse(AVCodecParserContext *s1,
 
         if(s->frame_size > 0 && buf_ptr - buf == s->inbuf_ptr - s->inbuf
            && buf_size + buf_ptr - buf >= s->frame_size){
-            if(s->header_count > 0){
                 *poutbuf = buf;
                 *poutbuf_size = s->frame_size;
-            }
             buf_ptr = buf + s->frame_size;
             s->inbuf_ptr = s->inbuf;
             s->frame_size = 0;
@@ -236,10 +234,8 @@ static int mpegaudio_parse(AVCodecParserContext *s1,
         //    next_data:
         if (s->frame_size > 0 &&
             (s->inbuf_ptr - s->inbuf) >= s->frame_size) {
-            if(s->header_count > 0){
                 *poutbuf = s->inbuf;
                 *poutbuf_size = s->inbuf_ptr - s->inbuf;
-            }
             s->inbuf_ptr = s->inbuf;
             s->frame_size = 0;
             break;