Re: Problem with a MP3
Re: Problem with a MP3
- Subject: Re: Problem with a MP3
- From: Stephen Davis <email@hidden>
- Date: Sat, 20 Mar 2004 21:13:28 -0800
I have a MP3 file that refuses to play with CoreAudio but works with
iTunes (probably using QuickTime ?).
iTunes uses its own mp3 decoder. CA and QT use the same decoder.
If it was only refusing to play with an error returned from some CA
call, I will be happy,
however the symptom is that the CA hangs in a low-level read call.
(both in my own player code and in Apple's PlayAudioFile example)
Running Sampler on your app when it's stuck might help the CA team
narrow down the problem. Providing a downloadable link to the file
might help too. Best is to file a bug with apple and include the file.
One thing you might want to try is playing the file with QuickTime
Player which has the same decoder but a different file parser so it may
be able to handle the file. That doesn't solve your problem but it may
give you another helpful data point.
Do somebody knows about a tool, an API or a methodology to test if an
MP3 file (and btw any other file format) is Ok for CA usage
to avoid getting trapped in a situation the only way to solve is to
force quit the application ?
Trying to write an mp3 parser that is robust given all of the badly
formatted files generated by the encoders out there is a really
difficult problem and requires updating the mp3 decoder constantly.
The encoders aren't even stable. For example, MusicMatch versions 8.0
and 8.2 on Windows generate ok files but version 8.1 introduced a
regression which creates mp3 VBR files which are pretty much corrupt
and out-of-spec.
I would guess that the CA/QT decoder just falls down in this particular
case and there's not really anything you can do to pre-check the file
for "okay-ness". Because any individual frame could be the problem,
it's tough to create a general check that works reliably. However, if
the file is VBR, the problem may or may not be a corrupt Xing VBR
header at the beginning of the file and you could try validating that.
Of course, that is one area where many encoders get it wrong so a bad
Xing VBR header might not mean the rest of the file is bad.
Long story short, there's nothing you can really do to pre-validate the
file.
hope that helps,
stephen
_______________________________________________
coreaudio-api mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/coreaudio-api
Do not post admin requests to the list. They will be ignored.