[ID3 Dev] How do I deal with this problem COMM frame
Brian Schiffhauer
Brian at schif.org
Tue Apr 3 09:07:28 PDT 2007
ty, good explanation! ;)
----- Original Message -----
From: "Ben Bennett" <fiji at ayup.limey.net>
To: <id3v2 at id3.org>
Sent: Tuesday, April 03, 2007 10:28
Subject: Re: [ID3 Dev] How do I deal with this problem COMM frame
> On Tue, Apr 03, 2007 at 03:13:17PM +0200, Scott Wheeler wrote:
>> Brian Schiffhauer wrote:
>> >I was just wondering ... what is the purpose of a syncsafe integer?
>>
>> To avoid false MPEG synchs (a pattern of 11 true bits).
>
> To expand a bit, soemthing reading an MPEG stream needs to know where
> the frames start (if it is picking up in the middle, or if there is
> unexpected leading or trailint stuff, etc). So it looks for the synch
> information (and can use some othe things to sanity check... but it is
> not perfect) by scanning the stream until it sees 11 true bits (or if
> it has byte level framing information, one byte with all bits set
> true, followed by one with the first three set true) then it assumes
> it has an MPEG frame and treats the rest as something to decode. So
> if your tag contains something that matches that pattern, and your
> player doesn't know how to parse ID3v2 tags, there is a risk of treating
> the ID3v2 data as mpeg data and making the decoded stream contain a
> burst of noise.
>
> So the ID3v2.3 spec implemented tag level unsynchronization for the
> tag body (i.e. all the frames) and used synchsafe integers in the tag
> header, but that is not particularly efficient to decode (i.e. you
> need to hold the whole thing in memory and then apply the rules to
> remove the unschronization). So in 2.4 they added frame-level unsynch
> (and changed the meaning of the tag level unsynch flag) which
> necessitated the change to syncsafe integers for the length (and
> rejiggering of flags, etc.) in the frame headers since they are no
> longer protected by whole-tag unsynch.
>
> I hope I haven't befuddled you...
>
> -ben
>
>
> ---------------------------------------------------------------------
> 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