[pulseaudio-discuss] Getting the pollfds from the PA mainloop
Thomas Martitz
kugel at rockbox.org
Sun Mar 30 10:08:19 PDT 2014
Am 30.03.2014 17:04, schrieb Stephan Soller:
> Hi,
>
> is there a way to get the pollfds out of the poll() based Pulse Audio
> mainloop? Basically I want to do the poll() myself so I can poll for
> other stuff as well (some v4l2 devices and UNIX domain sockets).
>
> In ALSA there is the snd_pcm_poll_descriptors*() family of functions
> to get the required pollfds. But I haven't found an equivalent Pulse
> Audio function for that kind of stuff.
>
> I looked at the PA mainloop source code and found no matching
> functions
> (http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/pulse/mainloop.c).
> I found the pollfds and n_pollfds members in the pa_mainloop struct
> but no way to access them from the outside. Does that mean I'm stuck
> with ALSA?
>
> A little background: I'm currently building an audio/video live mixing
> program. It combines several video and audio streams (webcams, frame
> grabber, mics, ...) into one live stream and sends it to an encoder
> process (ffmpeg).
>
> One big poll() loop fechtes video and audio data and manages some UNIX
> domain sockets to send the result onwards. OpenGL is used to combine
> the different video streams. The program only shuffles data around and
> if possible I want to keep everything in one single threaded poll() loop.
>
> Any ideas are welcome.
Alternatively you can add your FDs to the pa mainloop using
mainloop_io_new(). The end result (all FDs are covered with a single
poll() call) is the same.
Best regards
More information about the pulseaudio-discuss
mailing list