[FFmpeg-cvslog] r18741 - trunk/libavcodec/mpegaudio_parser.c

Jai Menon jmenon86
Thu May 21 11:42:32 CEST 2009


On 5/21/09, Jai Menon <jmenon86 at gmail.com> wrote:
> On 5/5/09, michael <subversion at mplayerhq.hu> wrote:
>  > Author: michael
>  >  Date: Tue May  5 15:46:50 2009
>  >  New Revision: 18741
>  >
>  >  Log:
>  >  Do not discard mp3 frames in the parser after a broken frame.
>  >  Fixes issue1044.
>  >  This may cause regressions with broken streams, if you find any, please report!
>
>
> This breaks decoding of some mpegaudio streams, specifically issue
>  1106 on roundup.
>  I don't have a working knowledge of the parser but a partial revert of
>  this commit ( as in applying ) :
>
>
>  ==============================================================================
>  >  --- trunk/libavcodec/mpegaudio_parser.c Tue May  5 08:10:59 2009        (r18740)
>  >  +++ trunk/libavcodec/mpegaudio_parser.c Tue May  5 15:46:50 2009        (r18741)
>
> >  @@ -236,10 +234,8 @@ static int mpegaudio_parse(AVCodecParser
>  >          //    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;
>

Meh, i obviously meant :

==============================================================================
--- trunk/libavcodec/mpegaudio_parser.c Tue May  5 08:10:59 2009        (r18740)
+++ trunk/libavcodec/mpegaudio_parser.c Tue May  5 15:46:50 2009        (r18741)

 @@ -236,10 +234,8 @@ static int mpegaudio_parse(AVCodecParser
          //    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;

-- 
Regards,

Jai



More information about the ffmpeg-cvslog mailing list