[ID3 Dev] frames with 'Data length indicator' flag

Ben Bennett fiji at ayup.limey.net
Tue Dec 5 17:00:24 PST 2006


On Wed, Dec 06, 2006 at 03:07:25AM +0300, Alexey Illarionov wrote:
> 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.
 
> 
> 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.

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

> 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

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