I've noticed some strange things with snd_pcm_wait. My application opens the sound device in non-blocking mode and uses snd_pcm_wait whenever snd_pcm_writei return EAGAIN. This works fine as long as ALSA isn't doing any resampling. However, when resampling (e.g. from 44.1 kHz to 48 kHz) snd_pcm_wait returns immediately, insisting that there is room in the buffer, after which snd_pcm_writei obviously returns EAGAIN once more. The same thing happens if I use OSS emulation and select() or poll(). Replacing the snd_pcm_wait call with usleep(10000) makes the CPU load look normal again, while the application still works.
I am using Linux 2.6.4, ALSA driver 1.0.3 and library 1.0.3a with a SIS7012 chip. It behaves the same way with kernel 2.6.3 and driver 1.0.2c. I'm not quite sure when it started. This application used to work properly. Has something changed so I need to modify my application? -- Måns Rullgård [EMAIL PROTECTED] ------------------------------------------------------- This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel