[ID3 Dev] id3v2-3 extended header
Clemens Hammerl
beat84 at gmx.at
Wed Aug 15 02:09:27 PDT 2007
Is there a test suite for id3v2 tags too? If not, can you send me a
testfile with an extended header for v2.3 and 2.4, otherwise i cannot
test my code becaus i have no mp3s with extended header.
How do i know how long the frame part of the tag is if there is an
extended header?
Am 14.08.2007 um 21:31 schrieb Jim:
> I believe the 6 or 10 byte size only applies to v2.3 tags. The
> extended header size will be 10 bytes when the CRC flag is set (4
> added bytes for the CRC value) and 6 byte when the CRC flag is unset.
>
> To find the beginning of the frames, you would start at position 10
> + size of extended header if present.
>
> For v2.3 tags, you would read the first ten bytes (tag header) and
> then, if there is an extended header, read 4 bytes to get its size
> and then skip that many bytes. (The padding that is given in the
> extended header comes AFTER the frames.)
>
> For v2.4 tags, you would read the first ten bytes (tag header) and
> then, if there is an extended header, read 4 bytes to get its size
> and then skip (size - 4) bytes ahead. (I believe in v2.4 tags, the
> size given in the extended header includes the 4 bytes you would
> have already read.) And don't forget that in v2.4 tags, the
> extended header size is stored as a syncsafe integer.
>
> Check out this diagram. It should help:
>
> Overall tag structure:
>
> +-----------------------------+
> | Header (10 bytes) |
> +-----------------------------+
> | Extended Header |
> | (variable length, OPTIONAL) |
> +-----------------------------+
> | Frames (variable length) |
> +-----------------------------+
> | Padding |
> | (variable length, OPTIONAL) |
> +-----------------------------+
> | Footer (10 bytes, OPTIONAL) |
> +-----------------------------+
>
>
>
> Clemens Hammerl wrote:
>> hi
>> more questions inline...
>> Am 14.08.2007 um 18:10 schrieb Jim:
>>> Hi Clemens.
>>>
>>> I'm not sure which version of ID3v2 you are asking about.
>>> However, in both v2.3 and v2.4 tags, the extended header size is
>>> the first four bytes. For v2.3:
>>>
>>> Extended header size $xx xx xx xx
>>> Extended Flags $xx xx
>>> Size of padding $xx xx xx xx
>> So the extended header size is variable in 2.3/4 and not
>> constantly 10 Bytesin size? Im just confused about the variable
>> size of the header.
>> I will not implement extended headers im only interested in
>> parsing the Text Information Frames, so i have to search for the
>> beginning of the frames at position 10(Tag header) +
>> extendedHeaderSize + SizeOfPadding. Am I right?
>>>
>>> And for v2.4:
>>>
>>> Extended header size 4 * %0xxxxxxx
>>> Number of flag bytes $01
>>> Extended Flags $xx
>>>
>>>
>>> Is that what you were asking? (Both of those descriptions were
>>> taken
>>>> from the specs available on the ID3 website so you can look
>>>> there for a
>>> more thorough description of each field.)
>>>
>>> I can only guess why the size is stored as 4 bytes. My guesses
>>> would be both for future compatability if the extended header
>>> becomes larger in later versions and to make it standard with the
>>> rest of the sizes (overall tag size & frame sizes).
>>>
>>> Jim
>>>
>>>
>>> Clemens Hammerl wrote:
>>>> Hi
>>>> Im new to id3 an this list and i'm currently working on an
>>>> implementation of ID3 for Java.
>>>> I dont understand how the length of extended header is
>>>> calculated. In the specification stands that:
>>>> "...Where the 'Extended header size', currently 6 or 10 bytes,
>>>> excludes
>>>> itself..."
>>>> But were in the header is the size of the header stored. Is it
>>>> in the first 4 bytes. Why do you use 4 bytes when the maximum
>>>> length is 10B?
>>>> best regards clemens
>>>> -------------------------------------------------------------------
>>>> --
>>>> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
>>>> For additional commands, e-mail: id3v2-help at id3.org
>>>
>>> --------------------------------------------------------------------
>>> -
>>> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
>>> For additional commands, e-mail: id3v2-help at id3.org
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
>> For additional commands, e-mail: id3v2-help at id3.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: id3v2-unsubscribe at id3.org
> For additional commands, e-mail: id3v2-help at id3.org
---------------------------------------------------------------------
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