Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
dateiformat [11.06.2015 21:44] – [Padding] martin | dateiformat [11.08.2021 10:15] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 50: | Zeile 50: | ||
====== Die png Datei ====== | ====== Die png Datei ====== | ||
- | Ein png-Bild der Größe 140px × 193px. (???) | + | Ein png-Bild |
====== Die ouf Datei ====== | ====== Die ouf Datei ====== | ||
Zeile 60: | Zeile 60: | ||
| Index-Tabelle | n x 12 byte = n x 3 x 32 bit | | | Index-Tabelle | n x 12 byte = n x 3 x 32 bit | | ||
| Padding || | | Padding || | ||
- | | MP3 (incl. optionalem ID3-Tag ) / Binärscode | + | | MP3 (incl. optionalem ID3-Tag ) / Binärcode |
| Padding || | | Padding || | ||
- | | MP3 (incl. optionalem ID3-Tag ) / Binärscode | + | | MP3 (incl. optionalem ID3-Tag ) / Binärcode |
| ... || | | ... || | ||
- | | MP3 (incl. optionalem ID3-Tag ) / Binärscode | + | | MP3 (incl. optionalem ID3-Tag ) / Binärcode |
===== Dateikopf ===== | ===== Dateikopf ===== | ||
- | | 0 | Startposition der Index-Tabelle | 0x0068 | | + | | 0 (0x00) |
- | | 4 | unbekannt | 2 | | + | | 4 (0x04) |
- | | 8 | erste Ting-ID | 15001 (15000 gefunden; laut " | + | | 8 (0x08) |
- | | 12 | letzte Ting-ID | | + | | 12 (0x0c) |
- | | 16 | Anzahl der genutzten Ting-IDs | Entspricht nicht immer letzte Ting-ID – erste Ting-ID + 1 (???) | | + | | 16 (0x10) |
- | | 20 | Buch-ID || | + | | 20 (0x14) |
- | | 24 | unbekannt | Werte im Bereich 1 bis 20 gefunden (häufig gefunden: 2, 5, 7 und 11) | | + | | 24 (0x18) |
- | | 28 | Erstellungszeitpunkt | + | | 28 (0x1c) | Erstellungszeitpunkt |
- | | 32 | unbekannt | 0 | | + | | 32 (0x20) |
- | | 36 | unbekannt | 0x0000ffff | | + | | 36 (0x24) |
===== Index-Tabelle ===== | ===== Index-Tabelle ===== | ||
Zeile 105: | Zeile 105: | ||
< | < | ||
+ | |||
+ | |||
+ | private static int getNextAddress(int x) { | ||
+ | x += 0x100 - (x & 0xff); | ||
+ | while(x % 0x200 != 0) { | ||
+ | x += 0x100; | ||
+ | } | ||
+ | return(x); | ||
+ | } | ||
+ | |||
pos = 12 * <Anzahl der Eintrage im Index> + < | pos = 12 * <Anzahl der Eintrage im Index> + < | ||
- | pos += (0x100 - (pos % 0x100)) % 0x100 | + | pos = getNextAddress(12 * <Anzahl der Einträge im Index> + < |
- | while(<Die 12 (???) Bytes an der Stelle | + | while(!isMp3(<daten ab pos>) && !isScript(< |
- | pos += 0x100; | + | pos += 0x200; |
} | } | ||
</ | </ | ||
Zeile 165: | Zeile 175: | ||
} | } | ||
</ | </ | ||
+ |