Re: Do not want multiple clients mixing my audio
Re: Do not want multiple clients mixing my audio
- Subject: Re: Do not want multiple clients mixing my audio
- From: Daniel Mack <email@hidden>
- Date: Fri, 14 May 2010 22:39:31 +0200
On Fri, May 14, 2010 at 08:53:12AM -0500, John Johnson wrote:
> I'm trying to figure out if there's a way to prevent audio streams from mixing data, whether by one client having exclusive access or whatever.
Don't know whether I completely understand what you're aming for, but it
seems you can iterate the connected clients and access their sample
buffers directly. However, I didn't try that yet.
FWIW, I started a little project some time ago which implements a
kernel-space driver and loops back audio to userspace, in full-duplex.
>From there, it is transported to a PulseAudio daemon. This whole thing
is totally unstable and not suited for any real use yet, but I'm
planning to continue work on it. PulseAudio also needs some changes in
the API though.
However, accessing sample buffers provided by individual client drivers
rather then the mixed buffer is one of the things I definitely want to
have, as we can then finally have application-level mixing on Mac OS X,
just like PulseAudio does it on Linux since years.
If you want to have a look at the code, it's publically available here:
http://github.com/zonque/PulseAudioOSX
In particular, have a look what kext/PAStream.cpp does. It subclasses
IOAudioStream and keeps track of connected users. Again - this is
untested, don't try this at home :)
I would appreciate any feedback. In case your project is also going to
be free software, you could of course also think about integrating your
ideas into my project, make it more versatile etc. The userspace daemon
could be completely replaced by anything else, while keeping the kernel
driver common.
Daniel
_______________________________________________
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