vs1053: Random Access in OGG/WMA/MP3-Dateien

Gast #1363318
Hallo,

ich würde gerne wissen, welche besonderen Vorkehrungen man treffen muss, 
um eine Audiodatei (.ogg,.mp3,.wma...) an einer beliebigen Position in 
der Datei beginnend mit dem Decoder-IC vs1053 abzuspielen.

Während das Abspielen einer MP3-Datei vom Dateianfang an problemlos 
funktioniert, führt das Abspielen der Datei von einer zufälligen 
Position aus zu einem kurzen, unangenehmen "Audio-Artefakt", danach ist 
die Wiedergabe jedoch sauber.
Bei Ogg- und WMA-Dateien ist ein Abspielstart an beliebiger Position gar 
nicht möglich (Dekodierung schlägt fehl).

Eigentlich hatte ich erwartet, dass der vs1053 (zumindest bei 
MP3-Dateien) die Synchronisation auf den nächsten Frame selbständig 
durchführt und es daher nicht zu hörbaren Artefakten kommen dürfte. Was 
ist hier zu tun? Datei zum Anfang des nächsten MP3-Frames spulen?

Und wie behandelt man die anderen Dateitypen (OGG/WMA)? Laut Datenblatt 
muss hier scheinbar zunächst der Dateiheader zum vs1053 übertragen 
werden.

Hat sich bereits jemand mit einer ähnlichen Problematik beschäftigt und 
kann hier seine Erfahrungen teilen?

Besten Dank,
Joe
Persönliche Seite
> Und wie behandelt man die anderen Dateitypen (OGG/WMA)? Laut Datenblatt
> muss hier scheinbar zunächst der Dateiheader zum vs1053 übertragen
> werden.
Genau, bei Ogg und WMA muss zuerst der Header gesendet werden, da dieser 
Dekodierinfos enthält. Danach kann man die Datei an beliebiger Stelle 
abspielen. Zum Synchronisieren auf die Audioframes schau mal hier:
http://code.google.com/p/arm-webradio/source/browse/trunk/src/eth/shoutcast.c

Zu den Audio-Artefakt:
Probiere mal den VS Puffer vor dem Springen mit Nullen zu füllen?

Gruß
Andreas
Gast
Vielen Dank für den Quelltext, ich denke das bringt mich im Bezug auf 
die Synchronisation ein ganzes Stück weiter!

> Probiere mal den VS Puffer vor dem Springen mit Nullen zu füllen?
Ich fürchte, das wird nicht viel bringen. Der vs1053 kommt direkt aus 
dem Softreset, bevor ich die MP3-Daten sende. Vermutlich muss ich hier 
tatsächlich auch manuell zum nächsten Frameanfang spulen.

Gruß
Joe

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.