Re: Multiple Devices or Multiple Streams
Re: Multiple Devices or Multiple Streams
- Subject: Re: Multiple Devices or Multiple Streams
- From: "Sean Morrell" <email@hidden>
- Date: Thu, 25 Oct 2001 09:55:44 -0700
Thanks. That certainly helps. It would appear that starting and stopping
is done with engines. If multiple streams are handled by the same engine,
how are the streams used independently. For instance, how would a host
application start or stop the stream without effecting an application
using another stream? Are all streams associated with a single engine
available only to a single client application?
email@hidden writes:
>
>
On Thursday, October 25, 2001, at 08:17 AM, Sean Morrell wrote:
>
>
> So what determines whether a physical audio
>
> device should be presented to CoreAudio as multiple logical devices, one
>
> for each stream, or a single device with multiple streams? Is the
>
> approach the implementer's choice? What are the advantages and
>
> disadvantages of each approach?
>
>
The idea is " an engine represents one unit for synchronization". Let me
>
give an example. For the built-in Apple hardware there used to be 2
>
engines with one stream : one for input and one for output. However with
>
10.1 it has been modified to one engine with 2 streams (one input
>
direction, one output direction). The reason : these 2 engines are
>
physically on the same chipset (the macIO controller connected via DAV
>
or I2S to the Codec) and are driven by the same clock (these are 2 DMA
>
based engine). No drift is possible. This is why it has been reunified,
>
and it allows also to present synchronized I/O (but the main reason is
>
because this is the same clock).
>
An engine is really the "data pump" while the stream is "whatr you are
>
pumping" (Very clear isn't it :-))
>
>
Hope this helps
>
>
Laurent
>
>
Laurent Cerveau
>
Applications Division
>
Apple Computer Inc.
>
email@hidden