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

Michael Niedermayer michaelni
Mon May 25 14:35:11 CEST 2009


On Mon, May 25, 2009 at 10:18:52AM +0530, Jai Menon wrote:
> On Thu, May 21, 2009 at 3:12 PM, Jai Menon <jmenon86 at gmail.com> wrote:
> > 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;
> >
> 
> Any idea about this? Michael, If you can give a hint, I could try and
> write the patch :)

well, find out where and why it fails, droping frames in the parser is no
solution, one can just store the very same frames in a container that uses
no parser (such file then would fail no matter what te parser would do as
the parser isnt used)

One possibility is that there is a problem with id3 parsing so that not
everything is skiped that should be but there are many other possible
issues like sample rate or number of channels changing ...

please reply if you find out more info even if you dont know how to fix it

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Thouse who are best at talking, realize last or never when they are wrong.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/attachments/20090525/5cf97bb0/attachment.pgp>



More information about the ffmpeg-cvslog mailing list