habe ein wenig mit den möglichen Spracheinstellungen für die Tags in der aktuellen Version 2.36 herumgespielt.
Bei der Codierung in Unicode (UTF-16) bei mp3-Dateien meine ich ein Problem festgestellt zu haben:
Ein mp3-Frameheader beginnt mit 2 Sync-Bytes:
&hFF und (je nach version) &hEx oder &hFx
Aber auch der Unicode-Header besteht aus 2 Bytes in diesem Wertebereich:
&hFF &hFE
Zur Vermeidung diese Konfliktes ist in den ID3-Richtlininien der Mechanismus der Synchronisation/Desynchronisation definiert, wonach alle Bytes
&hFF
ausgetauscht werden gegen
&hFF &h00
und die Bytefolge
&hFF &h00
wird zu
&hF00 &h00 &h00
Die Frage nun:
Bug, Feature oder einfach nur ein Missverständnis bei mir?
Unsynchronisation ist optional und die Verwendung wird auch nicht unbedingt empfohlen bzw. ist überflüssig: http://www.id3.org/id3guide.htm#unsync
Zudem gibt es auch einige Programme, die dieses Feature nicht implementiert haben und dann am Tag-Lesen scheitern.
Danke für die schnelle Antwort.
Wie wird den mit dem Problem der mp3header-Frame Erkennung umgegangen, da ja gerade mit Unicode-Codierung ein Byte-match besteht?
Das ist hauptsächlich für Decoder interessant. Ich springe bei einem Match einfach noch zu der Stelle wo das nächste Frame beginnen müsste und behandle das erste Frame nur, wenn an dieser Stelle auch ein MPEG-Frame zu finden war.