[FFmpeg-devel] [PATCH 2/3] lavf/aiffdec: don't stop parsing after SSND chunk

Matthieu Bouron matthieu.bouron at gmail.com
Sun Jul 1 20:10:45 CEST 2012


On Sun, Jul 01, 2012 at 04:18:58PM +0200, Michael Niedermayer wrote:
> On Sun, Jul 01, 2012 at 11:16:42AM +0200, Matthieu Bouron wrote:
> > Some file has ID3 chunk placed after SSND.
> > ---
> >  libavformat/aiffdec.c | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
> > index 4083316..9764f82 100644
> > --- a/libavformat/aiffdec.c
> > +++ b/libavformat/aiffdec.c
> > @@ -251,8 +251,6 @@ static int aiff_read_header(AVFormatContext *s)
> >              offset = avio_rb32(pb);      /* Offset of sound data */
> >              avio_rb32(pb);               /* BlockSize... don't care */
> >              offset += avio_tell(pb);    /* Compute absolute data offset */
> > -            if (st->codec->block_align)    /* Assume COMM already parsed */
> > -                goto got_sound;
> >              if (!pb->seekable) {
> >                  av_log(s, AV_LOG_ERROR, "file is not seekable\n");
> >                  return -1;
> 
> this will probably cause the whole file to be read in
> aiff_read_header() in some cases
> 
Yes, this will cause ffmpeg to seek at the start of every chunks.
This is required for some file (for example aiff files purchased from
beatport.com) which has their ID3 chunk after the SSND chunk.

Maybe a better solution would be to add an option which tell the demuxer to
look for other chunks after SSND ?

Regards,
Matthieu


More information about the ffmpeg-devel mailing list