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