<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:10pt"><div>Hi Martin,<br><br>I'd say the spec is clear about this: if the text encoding signals UTF-16, then each sync MUST have its individual BOM, since the specification requires that a BOM must always be present when encoding UTF-16 strings. Since each sync is stored as a terminated string, each string must have a BOM, and each string MAY use a different BOM.<br><br>It isn't recommended to mix big and little endian strings within the same frame, but your implementation should be able to handle different BOMs when decoding a SYLT frame (or any other frame with multiple UTF-16 encoded strings) - "Be conservative in what you do; be liberal in what you accept from
others."<br><br>> All syncs can have their own individual BOMs.<br>> This would be crazy - to say the least.<br><br>Why? Because it takes, let's say, 25.000 songs * 200 sync strings * 2 bytes BOM = around 10 MB disk space for an entire music collection? Storing album cover artwork takes much more space.<br><br>Best regards,<br>Mathias K.<br><br><br></div><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><br><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt;"><font face="Tahoma" size="2"><hr size="1"><b><span style="font-weight: bold;">Von:</span></b> Martin Benkert <martin.benkert@gmail.com><br><b><span style="font-weight: bold;">An:</span></b> id3v2@id3.org<br><b><span style="font-weight: bold;">Gesendet:</span></b> Montag, den 8. Februar 2010, 21:02:31 Uhr<br><b><span style="font-weight: bold;">Betreff:</span></b> [ID3 Dev] Synchronised lyrics/text frames and
Byte-Order-Markers<br></font><br>Hi,<br><br>the synchronized lyrics frame SLT/SYLT supports text encodings, and also<br>Byte-Order-Markers (BOMs).<br><br>It has a 'Content Descriptor' which is simply an encoded string and might<br>have a BOM, just like all other encoded frames.<br><br>But it also has a binary structure of items called 'syncs', which have<br>this structure<br><br> Terminated text to be synced (typically a syllable)<br> Sync identifier (terminator to above string) $00 (00)<br> Time stamp $xx (xx ...)<br><br>The first item is plain text. I guess it is encoded according to the<br>specified encoding of the frame.<br><br>But what about BOMs here? In a typical file there might be some hundred<br>syncs (if they are syllables). If they all have individual BOMs this
will<br>be a lot of data. However, if they do not have BOMs at all, it is not<br>clear how for instance Little-Endian encoding might be specified.<br><br>There are four ways it might be intended to be<br><br> - syncs do not have any BOMs at all. This would be nice, but it implies<br> Big-Endian byte-order.<br> - the very first sync might have a BOM that is also applied to all<br> following syncs. This appears to be the best way. It also allows to<br> specify Little-Endian byte-order. But the ID3 standards do not specify<br> this in any way.<br> - all syncs can have their own individual BOMs. This would be crazy - to<br> say the least. But it would comply with the ID3 standards (at least in<br> an implicit way). <br> - the BOM used by 'Content Descriptor' is also used for the syncs. Might be<br> nice - but it beaks all conventions: Other frames with two encoded strings<br>
(COM/COMM, COMR, GEO/GEOB, ULT/USLT) all might have individual BOMs for<br> text fields - only ID3v2.4 specifies 'All strings in the same frame SHALL<br> have the same byte order'.<br><br>This somehow indicates that the lyrics in a SLT/SYLT frame appears to be a<br>real oddity with respect to BOMs.<br><br>Question here is: Is there a recommended way to specify the byte-order of<br>the lyrics of synchronized lyrics frames SLT/SYLT?<br><br>Thanks<br>Martin<br><br><br>---------------------------------------------------------------------<br>To unsubscribe, e-mail: <a ymailto="mailto:id3v2-unsubscribe@id3.org" href="mailto:id3v2-unsubscribe@id3.org">id3v2-unsubscribe@id3.org</a><br>For additional commands, e-mail: <a ymailto="mailto:id3v2-help@id3.org" href="mailto:id3v2-help@id3.org">id3v2-help@id3.org</a><br><br></div></div>
<!-- cg20.c41.mail.ird.yahoo.com compressed/chunked Sun Feb 7 03:13:39 PST 2010 -->
</div><br>__________________________________________________<br>Do You Yahoo!?<br>Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. <br>http://mail.yahoo.com </body></html>