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

Gast #1363318
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
Persönliche Seite #1363365
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
Gast #1363428
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren