On Mon, 22 Nov 2010, pl bossart wrote: >>> Since the PulseAudio commit 29acfd0e0413a9bd126782763ee2dcf10357546 I >>> am seeing errors messages telling me that the information reported by >>> snd_pcm_avail_delay is not accurate on the capture path, more >>> specifically the delay is lower than the available samples. >> >> Could you test patch bellow? >> >> http://git.alsa-project.org/?p=alsa-lib.git;a=commitdiff;h=ba9332e9192814a5431a3a2505d25d74a9232124 > > Nah, no luck. PulseAudio still reports an error and if I add > assert(*delayp >= *availp) the code bombs out. > Here is one way to solve the problem. I don't claim it's the right > one, but it's compatible with the way the availp value is computed, > and it makes the error message go away in PulseAudio. The double avail_update() calling seems too expensive to me. Could you test to use snd_pcm_mmap_capture_avail() instead snd_pcm_avail_update() calls (to assign both slave_avail and plugin_avail local variables)? Also, remove the assert. I think that it may be raised when the stream is in some xrun state (with xrun checks disabled). The avail_update can return the negative values in this specific configuration. > While I was at it I also removed the .client_frames and .slave_frames > methods that no one seems to use. This seems to be dead code that > hasn't been touched in years. Good catch. This code was used with the really old rate plugin (this plugin was recoded completely). I applied this patch. Jaroslav ----- Jaroslav Kysela <perex@xxxxxxxx> Linux Kernel Sound Maintainer ALSA Project, Red Hat, Inc. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel