• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: MP audio output
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.

  • Follow-Ups:
    • Re: MP audio output
      • From: Jeff Moore <email@hidden>
References: 
 >Re: MP audio output (From: Bill Stewart <email@hidden>)

  • Prev by Date: Re: MP audio output
  • Next by Date: Re: MP audio output
  • Previous by thread: Re: MP audio output
  • Next by thread: Re: MP audio output
  • Index(es):
    • Date
    • Thread