[ID3 Dev] $xx (xx ...)

Mitchell S. Honnert mitch at honnert.com
Mon Jan 1 11:28:20 PST 2007


>Where time stamp format is:
>$01 Absolute time, 32 bit sized, using MPEG frames as unit
>$02 Absolute time, 32 bit sized, using milliseconds as unit
> Abolute time means that every stamp contains the time from
> the beginning of the file
A ha!  I was overlooking that "32 bit sized" section in the format fields.
Thanks for that.

 - Mitchell S. Honnert

-----Original Message-----
From: Jim [mailto:jmartin92 at comcast.net] 
Sent: Sunday, December 31, 2006 7:40 PM
To: id3v2 at id3.org
Subject: Re: [ID3 Dev] $xx (xx ...)

I believe there is a field for each of these tags that will tell you how
many bytes to expect.

For example, for ETCO,
<Header for 'Event timing codes', ID: "ETCO">
Time stamp format    $xx

Where time stamp format is:

$01 Absolute time, 32 bit sized, using MPEG frames as unit
$02 Absolute time, 32 bit sized, using milliseconds as unit
Abolute time means that every stamp contains the time from the beginning of
the file

(that was taken from the ID3v2.3 spec)  So for both cases you would expect
32 bits (or 4 bytes) for the time stamp.

There are similar fields for each of the types of frames you cited.  Check
the specs again.  (SYLT and POSS have the same type of field as ETCO.  I
think EQUA is only found in ID3v2.3 and has a different field but is
documented in the spec.)

----- Original Message ----- 
From: "Mitchell S. Honnert" <mitch at honnert.com>
To: <id3v2 at id3.org>
Sent: Sunday, December 31, 2006 6:18 PM
Subject: [ID3 Dev] $xx (xx ...)


> OK.  I give up.  It's probably that I'm just not seeing it, but I can't
find
> any definition of this format.
>
>    $xx (xx ...)
>
> I've found this pattern in the following frames...
>
> Event timing codes ETCO
> Synchronised lyrics/text SYLT
> Equalisation EQUA
> Position synchronisation frame POSS
>
> ...and it relates to the Time Stamp or the Adjustment numeric field of the
> respective tag.
>
> The format appears to translate to "a number consisting of one or more
> bytes".  But how are you supposed to know *how many* bytes more than one?
>
> At first I thought there might be some kind of flag in the frame that
would
> tell you how many bytes each TimeStamp/Adjustment number used, but I
> couldn't find it.  Then I thought that perhaps I could deduce the byte
count
> by using some pattern matching, but I couldn't come up with anything
> definition.
>
> I even reversed engineered the Synchronized Lyrics frame created by
Windows
> Media Player to see how they did it, but they appear just to have
hard-coded
> the Time Stamp to four bytes.
>
> I'm going to feel pretty silly if I've just overlooked this, but I
honestly
> can't find it.  So, wow are you supposed to know how many bytes are
> represented by the "(xx ...)"?
>
>  - Mitchell S. Honnert
>
> PS: This is yet another example of where we could make tweaks to current
ID3
> versions (ID3v2.3 and ID3v2.4).  Specifically, if most ID3 developers were
> forced to interpret "$xx (xx ...)" as "$xx xx xx xx" because of ambiguous
or
> missing ID3 documentation, then we should just accept that this is the new
> standard and document it accordingly.  (And even if this is in the
> documentation somewhere -- which is entirely possible -- we could at least
> tweak the standards to make it more prominent.)
>
>
>
> ---------------------------------------------------------------------
> 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