Device Virtual Formats
Device Virtual Formats
- Subject: Device Virtual Formats
- From: "Stephen F. Booth" <email@hidden>
- Date: Sat, 9 Jan 2010 09:31:10 -0800
I'm digging a bit deeper into Core Audio than I have before and I was
hoping for some clarification on device virtual formats. I'm having
some trouble wrapping my head around around them. I understand that a
given piece of audio hardware (actually a particular stream on it) has
specific formats it will support, and it is the driver's job to
provide data in that format. I also believe that the driver may not
receive input data in the same format as the output- and so must
perform some sort of conversion in this case.
The AudioHardware documentation says:
AudioDevices contain instances of the AudioStream class. An
AudioStream represents a single buffer of data for transferring across
the user/kernel boundary. As such, AudioStreams are the gatekeepers of
format information. Each has it's own format and list of available
formats. AudioStreams can provide data in any format, including
encoded formats and non-audio formats. If the format is a linear PCM
format, the data will always be presented as 32 bit, native endian
floating point. All conversions to and from the true physical format
of the hardware is handled by the device's driver.
Does saying that PCM data will always be presented as 32-bit float
mean that even if I am handing an output AU 16-bit ints that they will
be converted to 32-bit floats before being handed to the stream and
subsequently the driver? If this is the case, where does the
conversion occur?
Asked another way, will an AudioStream ever support a PCM format other
than 32-bit float? Or would the other formats be formats like AC3,
DTS, etc?
Stephen
_______________________________________________
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