Discussion:
frames with 'Data length indicator' flag
Alexey Illarionov
2006-12-06 00:07:25 UTC
Permalink
Hi,

Is the following frame correct in ID2v2.4?

TPE1 size flags data length S
0000000a 54 50 45 31 00 00 00 11 00 01 00 00 00 0d 03 53
tratovarius
0000001a 74 72 61 74 6f 76 61 72 69 75 73


It have 'Data length indicator' in frame format flags set. This frame
was written by libid3tag. I have tested some programs with tags with
such frames (winamp, windows media player, amarok, foobar, last
tag&rename..) and i was found only two programs that read such frames
correctly. They are foobar and amarok.
When i rewrite this tag in amarok, it is cut off data length with data
length indicator. After that this frame has been read correctly with
most of the listed programs, even by winamp.
I'm not shure about values of the 'frame size' (0x11) and 'data
length' (0x0d). Is they correct?
Ben Bennett
2006-12-06 01:00:24 UTC
Permalink
Post by Alexey Illarionov
Hi,
Is the following frame correct in ID2v2.4?
TPE1 size flags data length S
0000000a 54 50 45 31 00 00 00 11 00 01 00 00 00 0d 03 53
tratovarius
0000001a 74 72 61 74 6f 76 61 72 69 75 73
It looks correct to me. The data length is the "length of the data if
all flags were zeroed" so, size - 4 (the 4 bytes of the data length)
which equals the 0x0d (13 decimal) bytes of the string. And size
looks correct. There are 0x11 (17 decimal) bytes following the flags.
Post by Alexey Illarionov
It have 'Data length indicator' in frame format flags set. This frame
was written by libid3tag. I have tested some programs with tags with
such frames (winamp, windows media player, amarok, foobar, last
tag&rename..) and i was found only two programs that read such frames
correctly. They are foobar and amarok.
I am not surprised... I haven't found much that fully implements the
spec. Sadly.
Post by Alexey Illarionov
When i rewrite this tag in amarok, it is cut off data length with data
length indicator. After that this frame has been read correctly with
most of the listed programs, even by winamp.
Amarok uses taglib to read/write the tags, and that appears to be
liberal in what it accepts and then write tags that are generally
valid.
Post by Alexey Illarionov
I'm not shure about values of the 'frame size' (0x11) and 'data
length' (0x0d). Is they correct?
They appear to be. But if you can control whether or not the data
length is written, I would try to disable it.

-ben

Loading...