Re: Quicktime support for Core Audio AudioFileFormat components.
Re: Quicktime support for Core Audio AudioFileFormat components.
- Subject: Re: Quicktime support for Core Audio AudioFileFormat components.
- From: Brad Ford <email@hidden>
- Date: Wed, 14 Sep 2005 14:16:15 -0700
On Sep 14, 2005, at 11:21 AM, Nathaniel Gray wrote:
Hello Quicktime folks,
Like a lot of folks out there I would like to have first-class support
various open audio codecs in OS X. My short-term desire is to be able
to play Ogg Vorbis files in iTunes, for example. As I'm sure you are
aware, the Ogg Vorbis components from qtcomponents.sf.net didn't
survive the transition to QT 7, and the project appears to have been
abandoned.
"Didn't survive" is a little harsh. I've heard rumblings for a while
that Ogg Vorbis was broken in the transition to QT 7, but could
neither confirm nor deny -- so I built the projects and ran some test
files and found that:
1) the Ogg 'eat ' component (.ogg -> QT movie importer component) is
working just fine. It parses ogg files and creates QuickTime movies
in memory which have correct durations and can be stepped through and
saved as QuickTime movies.
2) the crashing is in the vorbis 'sdec' component when trying to play
back audio. QuickTime now uses CoreAudio structures (i.e. Audio
Converters) to play back movies instead of Sound Manager structures
(i.e. SoundConverter). Ogg, as I understand it is a variable bit
rate, variable duration codec, and in order to be played back
correctly by CoreAudio, it really needs to be recast as an AudioCodec
('adec' and 'aenc').
3) The Ogg 'spit' component (QuickTime movie -> .ogg file exporter
component) is working just fine. I am able to open QuickTime movies
and export them to .ogg files just fine. These files play back
properly in VLC.
In short, the only piece that appears to be broken right now is the
decoder. Writing one component is a lot easier than writing 4. And
it appears the more difficult eat and spit components are already
working correctly, so you don't need to go there.
At the moment, it appears that to get complete support for an audio
codec in OS X you need:
* a Core Audio AudioCodec for the audio stream format (e.g. vorbis)
* a Core Audio AudioFileComponent for the container format (e.g. ogg)
* 'eat ' and 'spit' quicktime components for the container format
The purpose of the AudioFileComponent part overlaps to a large degree
with the eat/spit quicktime components. If all you care about is
audio then the AFC and AC should be sufficient. Furthermore, it's
much simpler to write an AFC than it is to write eat/spit components.
Bill Stewart from Core Audio has suggested that the plan is for QT to
eventually support AudioFileComponents.
We definitely do want to support AudioFileComponents generically. In
QT 7 we already do provide partial support for AFC's (we can, for
instance, import .caf, .aac, and .adts files). But again, you don't
need to worry about AFC's. The Ogg project already has working eat
and spit components. So you can already read and write Ogg files.
You just need an 'adec' to decode vorbis properly in an
AudioConverter world, and perhaps an 'aenc' to encode vorbis --
likewise using the AudioConverter API's. CoreAudio provides
excellent soup starter code for AudioCodec writing -- providing a
sample codec (IMA) implementation in their SDK. Check it out.
-Brad Ford
QuickTime Engineering
As somebody who is thinking about trying to write the code, I can tell
you that such support would make me *very* happy indeed. In fact,
since I'm doing this on a volunteer basis and I have other
obligations, if I need to write the eat/spit components it may not be
feasible for me to do the project at all. I suspect I'm not the only
one in this situation -- the learning curve for the quicktime API
seems to be fairly steep.
So the point of this message is half question and half request. Can
anybody estimate when QT will support AudioFileComponents? Are we
talking about years, months, or weeks? And now my request: how about
making it weeks instead of years? :-) I think it would lead to many
new audio codecs supported in OS X sooner rather than later.
Thanks,
-n8
--
-- Nathaniel Gray -- Caltech Computer Science ------>
-- Mojave Project -- http://mojave.cs.caltech.edu -->
_______________________________________________
Do not post admin requests to the list. They will be ignored.
QuickTime-API mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden