Hello, I would like to use pulseaudio on a PCM device (no ALSA, no OSS). For this, I made some modifications to module-pipe-sink so that it writes to the PCM device instead of the FIFO. (below is a minimal patch that shows how I did it (I am working on the 0.9.10 version)): The problem is in the thread_func main loop (line 137): if (u->sink->thread_info.state == PA_SINK_RUNNING && pollfd->revents) { pollfd->revents is never set, so nothing is ever written to the device. I will get sound if I void the check: if (u->sink->thread_info.state == PA_SINK_RUNNING) { But then of course I get a very high CPU usage. I get a similar behaviour if I use module-oss.c as a basis for the implementation. I added some debug info to rtpoll.c and it seems that inside pa_rtpoll_run events are always set to POLLIN, even though it is explitly set to POLLOUT (module-pipe-sink.c:176). Anyhow, I am not sure of what exactly the problem is and running out of ideas on what to try. Does anyone have an idea ? Thanks, Loris ------- $ diff module-pipe-sink.c module-pcm-sink.c 65c65 < #define DEFAULT_FILE_NAME "/tmp/music.output" --- > #define DEFAULT_FILE_NAME "/dev/aud_pcm" 235,236c235 < mkfifo(u->filename, 0666); < if ((u->fd = open(u->filename, O_RDWR|O_NOCTTY)) < 0) { --- > if ((u->fd = open(u->filename, O_WRONLY|O_NOCTTY)) < 0) { 249,253d247 < if (!S_ISFIFO(st.st_mode)) { < pa_log("'%s' is not a FIFO.", u->filename); < goto fail; < } < 324,328d317 < if (u->filename) { < unlink(u->filename); < pa_xfree(u->filename); < } <