Re: MP audio output
Re: MP audio output
- Subject: Re: MP audio output
- From: Kurt Bigler <email@hidden>
- Date: Thu, 21 Mar 2002 15:30:27 -0800
on 3/21/02 10:49 AM, Kurt Bigler <email@hidden> wrote:
>
>> Suppose I instantiate two connections to the default audio unit for output.
>
>> Then I get two callback threads, right?
on 21/3/02 11:11 AM, Jeff Moore wrote:
>
> If your connections ultimately end up talking to the same device, you won't
>
> get two IO threads, just the one. The HAL will only run a single IO thread
>
> per device per process.
on 3/21/02 12:28 PM, Bill Stewart <email@hidden> wrote:
>
The OutputUnits (whether the HAL, Default or System) are designed to
>
represent the format of the device to their clients...
>
>
Thus, if a device has a single stream (for eg. Built-in hardware), then
>
you'll only be able to connect input to it on the output unit's element==0
>
(ie. One channel/bus)
>
>
If a device has multiple streams, then the elements (buses) of the output
>
unit represent in the same order, the signal path for each of the streams
>
for the device.
>
>
Thus, there are things they don't do:
>
(1) They don9t mix - If you need to mix, you should have a mixer sitting on
>
top of the output unit's input buses
>
(2) You can only establish connections to the output unit based on the
>
stream configuration of the device itself - where element (bus) 0 relates
>
directly to the first stream of the device, element (bus) 1 relates to the
>
second stream of the device, etc...
Thanks, this is beginning to clarify things. I would like to resolve some
confusion this brings up in relation to the documentation.
coreaudio.pdf page 16:
>
An Audio Device should support an arbitrary number of clients, although it
>
is not required to. An error is returned if a given device refuses to accept
>
another client.
Writing Audio Device Drivers page 38:
>
Each client of the Audio HAL has its own I/O thread.
On page 39 of that document there is a description of how HAL does mixing.
I have the impression from there that inside HAL the mix buffer is at a
level above the audio stream, and that multiple output sources can be mixed
into a single output stream.
So I take it that HAL can mix multiple clients, but each client being mixed
must be in a separate process (which I interpret to mean a separate
application or separate copy of the same application). With this setup then
would HAL mix output from multiple clients? Does the single-stream limit
get in the way of this?
The bottom line question is whether there is a way to leverage the core
audio system to assist in setting up threads to utilize multiple processors.
Thanks,
Kurt Bigler
_______________________________________________
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.