[FFmpeg-devel] [PATCH] fixes in mpeg audio parsing

Yoav Steinberg yoav
Thu Nov 13 17:59:17 CET 2008



Michael Niedermayer wrote:
>> It _might_ be possible to change read_packet to always buffer the last 
>> 128 bytes of data and return them with a delay after more data is 
>> available. 
> 
> Thats no "might", thats certainly possible. But thats not what i mean.
> First why do you not detect the id3v1 tag? i mean check if there is a mp3
> frame or a id3v1 tag by looking at the header.

The last 128 bytes of the file contain the tag (if there is a tag). This 
means that without looking at those bytes you cannot know if there's a 
tag available. That's why the existing code does not attempt to check 
for such a tag on non seekable streams.

> 
> One certainly could have concatenated 2 mp3 files with a id3v1 ending in
> the middle it would be nice if the parser & decoder would skip/ignore this
> trash in the middle.
> To me it seem that it shouldnt be too hard to make the parser skip
> this, unless a valid id3v1 tag can also be a valid mp3 frame.
> 

The current parser will, in most cases, skip id3v1 tags in the stream 
which is good. But in one case the parser does actually think the tag is 
part of a frame and does not skip it. This is when the tag was put 
inside (overwriting) a frame's data. This isn't strictly valid, but it 
turns out there are such files out there.






More information about the ffmpeg-devel mailing list