[ID3 Dev] Why is footer not included in total size?

Ben Allison benski at winamp.com
Wed Nov 15 19:47:26 PST 2006


The footer is excluded from the length because it would trip up parsers
that aren't expecting it (either because they are ID3v2.3 or aren't fully
conformant to 2.4).

It's easy to imagine, you're done reading the last frame, and then come
across "3DI[0x04]" and assume it's a frame you don't understand, at which
point you read the frame size and, woops, now you're somewhere in the
middle of the file.

As others have said, footers are meant for appended tags.  Although not
specifically banned from use on prepended tags, the fact that padding and
the footer are mutually exclusive implies that it's never meant to be used
at the beginning.

-Ben Allison

> Hi.
>
> I am wondering what the reasoning was behind the size stored in ID3v2.4
> tags not including the size of the footer (if present).
>
> I've been looking through the source code for some utilities for MP3 files
> and some other audio file types.  Many of these utilities use a simple
> method for skipping over the ID3v2 tag if it is there.  They read the
> first 10 bytes of the file, do some simple checking (look for 'ID3', check
> that version bytes are less than $FF and in some cases check that size
> bytes are syncsafe, i.e. < $80) and if it looks like a tag, convert the
> size and skip that many bytes ahead (+ 10 bytes for header).  Most of
> these utilities would be broken if the tag has a footer.  They don't do
> any specific version checking or checking of the flags byte.
>
> If the size stored in ID3v2.4 tags included the footer size (if it is
> present), it would make these tags much more backwards compatible.  (I
> know it is a pretty easy change to add checking for the footer flag but
> wouldn't it have been better to make it compatible with older apps that
> don't really need to read the tag, just skip it?)   Were there reasons
> that came up during development why it was done the way it is?  If so, I'd
> appreciate if someone could share them with me.  Or if there is somewhere
> I can read about this (like some archive of the mailing list) I would
> appreciate someone pointing me in the right direction.
>
> Thanks.
>
> Jim Martin
>


---------------------------------------------------------------------
To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
For additional commands, e-mail: id3v2-help at id3.org



More information about the ID3v2 mailing list