• 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: AudioServerPlugIn / kAudioDevicePropertyStreams
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AudioServerPlugIn / kAudioDevicePropertyStreams


  • Subject: Re: AudioServerPlugIn / kAudioDevicePropertyStreams
  • From: Frederic De Jaeger <email@hidden>
  • Date: Thu, 27 Nov 2014 18:38:08 +0100

Hi

My understanding is that a plugin can have several "boxes".  A "box" can have several "devices".  A "device" has several "streams" and a "stream" has several "channels".  I'm not sure about the usage of several streams in one device.  This is clearly used to represent the "input stream" and the "output stream" of a full duplex audio interface.  Now I have no idea if it is reasonable to have several "input streams" (or "output streams").
Have you played with this property:  kAudioStreamPropertyIsActive ?
Maybe you could disable some streams this way.

Anyway, you certainly don't need to create several drivers.  You just need to have your driver exposing several "boxes" or your single box exposing several "devices".

Fred

2014-11-25 19:12 GMT+01:00 Steven Toth <email@hidden>:
(First time poster)

Hello all.

I think I've misunderstood something related to Audio Server Plugins,
hopefully someone with more experience can comment. (OSX 10.9 or
10.10).

I'm writing a userspace driver that exposes multiple independently
operated stereo audio streams (LPCM 44.1). The requirement is that
each audio stream is selectable as a valid audio input via a typical
AVFoundation application, run independently and deliver its own PCM
samples without any impact on other 'streams' within the device.

In other words, a device that can have none-or-more of its streams
running, while other streams within the same device are idle. I
thought CoreAudio allowed that, by exposing N x streams. I think I'm
wrong.

Evidence tells me that the APIs (Eg. StartIO) have no concept of a
single stream running on its own. The entire Device is started and
expected to deliver samples on each stream, in fact I see this during
testing. Calls to DoIOOperation for all exposed streams within the
same Device are received.

If my initial design assumptions are incorrect, what's the preferred
way to achieve my goal?

Perhaps create multiple .driver binaries, each with their own UUID and
have coreaudiod load each like its own independent driver?

Attempts to register multiple plugin uuids in the .driver plist array,
to instruct coreaudiod to register multiple devices from a single
.driver, result in only the first device being created. Pity.

I'd welcome feedback on this. Thanks,

- Steve

--
Steven Toth - Kernel Labs
http://www.kernellabs.com
 _______________________________________________
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

 _______________________________________________
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

  • Follow-Ups:
    • Re: AudioServerPlugIn / kAudioDevicePropertyStreams
      • From: Steven Toth <email@hidden>
References: 
 >AudioServerPlugIn / kAudioDevicePropertyStreams (From: Steven Toth <email@hidden>)

  • Prev by Date: Logic Macro and ID in the Logic event List
  • Next by Date: Re: AudioServerPlugIn / kAudioDevicePropertyStreams
  • Previous by thread: AudioServerPlugIn / kAudioDevicePropertyStreams
  • Next by thread: Re: AudioServerPlugIn / kAudioDevicePropertyStreams
  • Index(es):
    • Date
    • Thread