Polling problem with a PCM device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 08.12.08 10:21, Loris (lb at 2m.dk) wrote:

> 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 am not sure what kind of audio device you have there. The code in
question relies on properly implemnented file descriptors that signal
writabilty via POLLOUT when polled with poll(). If your device driver
doesn't support that, than you should probably fix it first. Of
course, it should be a much better idea to simply write a proper ALSA driver.

Please note that you won't have much fun with PA if you don't have a
proper implementation of the timing interfaces.

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux