[pulseaudio-discuss] sink/source implementation for pull-io audio processing

Daniel Mack daniel at caiaq.de
Tue Nov 3 01:54:24 PST 2009


I'm currently hacking on modules for CoreAudio sink/sources and wonder
which way to go for the actual audio buffer transfer.

CoreAudio is implemented in a asynchronous pull-io fashion, which means
that the user registers a callback (IOProc) to be called for the device
whenever there is a specified amount of data available and/or wanted,
respectively. That's all fairly straight forward.

As the PA sinks/sources are set up to match the sample format used by
CoreAudio's IOProc, there is actually nothing more left to do inside
this callback than copying the buffers from one end to the other when
I'm called and then inform PA about new data arrival.

Which API would cause as less overhead as possible? I didn't fully
understand the magic behind the PA RT threads yet, and I doubt I need that
at all as CoreAudio's IOProc is already called from a _very_ highly
priorized thread.

Any pointers appreciated.


More information about the pulseaudio-discuss mailing list