[ID3 Dev] Syncsafe integers and 2.3/2.4

Ben Bennett fiji at ayup.limey.net
Sun Aug 21 17:10:39 PDT 2005

On Sun, Aug 21, 2005 at 05:38:52PM -0400, Robert Crowell wrote:
> Is iTunes at fault for not converting the USER frame's size to a synchsafe
> integer when converting a tag to 2.4?  Am I mis-reading the ID3v2
> specification?  If it turns out that iTunes is doing something silly, how would
> I detect it in my code?

Sadly iTunes has totally buggered up their implementation of 2.4.
They do not honor the syncsafe integer rules so reading a 2.4 frame is
sketchy.  The best you can do is look at the syncsafe integer and see
if it has bits set where they are not allowed to be set, and if they
are then treat it as a non-syncsafe int.

Unfortunately if a frame is already syncsafe and imported by something
else, iTunes leaves it alone until it needs to write it.  Gah!

> P.S. I have also tested the tags generated by the Media Rage application for
> Mac.  The behavior is the same.  What am I doing wrong?

Quite possibly it was written by the same library (Quicktime).

There is a PHP ID3 library that has decent support for dealing with
this.  I looked at their code when I was wrestling with this issue.
They have comments indicating iTunes is borked too.

I would avoid ID3v2.4.


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