In the CA SDK there is a collection of classes (AudioFileTools -
CAAudioFile, and will read/write *any* file format that is supported
by the AudioFile and AudioConverter APIs). These classed use the
AudioFile and AudioConverter API to do their work.
In Tiger we ship support (with the AudioFile API ) for the following
MP4 - audio only
M4A - these are the "in the clear" iTunes audio files. M4P's are the
DRM'd version, we *don't* support these
.AU/.SND - NeXT/Sun Audio File Format
ADTS - (MPEG 2 defined bit stream for AAC data)
We see CAF as a universal and extensible container format for any
audio content as it can contain data formats as varied as:
Sigma-Delta (PWM as used on SACD)
CAF files can also contain data formats such as Ogg or FLAC - that
could be encoded/decoded if the AudioCodec support from 3rd parties
for these formats were available. AudioCodecs are the mechanism
provided on Mac OS X that allow developers to directly support audio
data formats both within the CA API's and within QuickTime. (AAC,
ALE, MP3 for instance are shipped by us as AudioCodecs).
We also provide in Tiger (and with the QT7 release in Panther) a new
component type called Audio File Components - this allows for support
for file formats that are provided by 3rd party companies. It is an
extension mechanism only - it is accessed through the Audio File
APIs. The support for both CAF and MP4/M4A was done using this
component model, and can readily be accessed by any user of the
AudioFile API set. The Tiger SDK has a base class that can be used as
a basis to write your own AFC. We're also working with QT for tighter
integration and support for AFC's with their Import/Export model, so
that AFC's would be discovered by QT and become an optional format
for users to use for import/export.
Another addition in Tiger is the ExtendedAudioFile API set. This API
provides an amalgamation of both the AudioFile and AudioConverter
APIs to provide:
(1) Simple reading and writing of Audio File data
- Caller always uses Linear PCM, API handles the conversion to/
from the audio data format of the file itself.
(2) Threaded read/write
- reading and writing can be done from threads such as the I/O
thread where you *cannot* block, as the read/writes to the disk are
done on a different thread than the calling thread
(3) Sample Frame accurate seeking even within compressed audio
formats such as MP3, AAC, ALE, etc..
In the CA SDK in Tiger, the audio file tools (afconvert, afplay, etc)
can be compiled to use this API directly, or to use the SDK provided
code (CAAudioFile). The CAAudioFile classes essentially do what the
EAF APIs do (they provided the basis of that implementation). These
classes are still shipped in the SDK in Tiger (and will continue to
be), but our future development will be concentrated on the EAF API,
so we'd advise people to use that API wherever possible.
tel: +1 408 974 4056
"Much human ingenuity has gone into finding the ultimate Before.
The current state of knowledge can be summarized thus:
In the beginning, there was nothing, which exploded" - Terry Pratchett
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