mikrocontroller.net

Forum: Projekte & Code MP3 ID3 reader example for ID3 versions 1.0 2.2, 2.3 and 2.4


Autor: Malte __ (malte) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
As I did not find a small implementation for reading mp3 ID3 tags, I
wrote it myself.

The code is thought as a sample for own customising.
It can be compiled for an AVR and a Unix PC.
Compiled for an AVR, it needs 1,3KB flash. Please note, that functions
similar as the Unix functions fread and fseek are required in order to
use the code.

Features:

Supports:
     Versions:
       ID3 V1.0
       ID3 V2.2
       ID3 V2.3
       ID3 V2.4
     Formats:
       ISO-8859-1
       UTF-16 with BOM
       UTF-16 without BOM

   Partly supports:
     Flags:
       Jumps over external header
     Formats:
       UTF-8 is handled as ISO-8859-1

   Not supports:
     Umlauts will be removed
     Unsynchronisation
     Extended Tag in ID3 V1.x

Feedback and questions are welcome, especially if you found an (legally
downloadable) mp3 which contains ID3 tags and can't be parsed with my
source.

(Natürlich können Fragen und Anmerkungen auch in Deutsch gestellt
werden).

Autor: Tobias Plüss (hubertus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Malte,
cool stuff, that was exactly what I searched.
Especially ID3v2 is not that simple, but if your code works it's great!
Thanks a lot.

Autor: Malte __ (malte) Benutzerseite
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
I missed umlauts.

The output function now produce ISO_8859-1 instead of ASCII.

If the ID3 is encoded as UTF-8 and the chars can be represented in 
ISO_8859-1, its converted to properly.

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
What is the "calcultate framsize" part used for? I don't get its 
sense...

Autor: Malte __ (malte) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Each Frame has a variable size of its data. So the lenght/size is 
encoded in the Head of each Frame.
See
http://www.id3.org/id3v2.3.0#head-1a37d4a15deafc29...

I hope, this helps.

Autor: Wurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
thx, malte. having read the spec the thing is much clearer.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.