[ID3 Dev] Tag location

Jim jmartin92 at comcast.net
Fri Jan 12 11:36:02 PST 2007


Michal Vician id3v2 at audiott.com wrote:

<snip>
> > And I would still like to see it clarified in the spec that 2.4 tags at
the
> > beginning of a file cannot have a footer.  I think the current wording
is
> > ambiguous.  (To me it means that a prepended tag can have either a
footer or
> > padding but not both.)
>
> Wow. What? I understand it exactly like that ("tag can have either a
> footer or padding but not both"). My implementation currently allows to
> write a footer in prepended tag.
> So, your are saying that prepended tag MUST NOT have footer?? If yes, I
> would logically expect to have in specification something like this:
> 1. "Footer is intended for tag (or part of the tag) located at the end
> of the file. Prepended tag MUST NOT have footer, because footer brings
> no benefit to prepended tag."
> 2. "Padding is intended only for prepended tag. Appended tag MUST NOT
> have padding, because it would be useful, while there are no audio data
> under the tag."
>

I had asked for some clarification about this before.  It started because I
wanted to know the reason why the size written into the header/footer does
not include the size of the footer if it is present.  There are some pieces
of software that only read the ID3v2 header (at the beginning of the file)
to calculate the size and know how many bytes to skip to get to the "real"
beginning of the file (the audio data).  All of these old pieces of software
would be broken if they encountered a 2.4 prepended tag that had a footer
because instead of skipping to the beginning of the audio data they would
end up skipping to the beginning of the footer.  (Software that doesn't
understand 2.4 tags would not know to check for the footer flag.)

It was mentioned that the size of the footer is not included because a
parser might then try to interpret the footer as a frame, but I think this
would rarely happen because a parser that only understand 2.3 or earlier
should not be trying to parse 2.4 frames and if it did it would already be
broken because frame sizes in 2.4 frames are syncsafe integers while 2.3 and
earlier are not.

So to me it seems like the size should either include the size of the footer
or a footer should not be added to prepended tags to maintain compatibility.

The only things that are clear from the spec is that an appended tag CANNOT
have padding.  (In section 3.3 about padding it says that there must not be
any padding when a footer is present and in section 3.4 it says that an
appended tag must have a footer...so put the two together and you see that
appended tags cannot have padding.)

But it isn't specified anywhere that a prepended tag cannot have a footer as
long as it doesn't have padding.

Hopefully this can be cleared up before more software starts adding support
for 2.4 tags to avoid incompatible implementations.

(Even if this issue isn't definitely settled, perhaps someone could edit the
2.4 spec in the WIKI to add something like "It is suggested that prepended
tags not have a footer." or something similar.)

--Jim



---------------------------------------------------------------------
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