Forum: Mikrocontroller und Digitale Elektronik vs1053: Random Access in OGG/WMA/MP3-Dateien


von Joe (Gast)


Lesenswert?

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

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

> 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

von Joe (Gast)


Lesenswert?

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.