[alsa-devel] [PATCH 0/2] PCM OSS fixes

Lars-Peter Clausen lars at metafoo.de
Tue Jan 9 14:38:48 CET 2018


On 01/09/2018 08:33 AM, Takashi Iwai wrote:
[...]
> However, the problem is that OSS emulation sets avail_min=1: implying
> that, when there is any samples empty in the ring buffer, it can
> continue.  In the case above, when some samples have been processed
> before wait_for_avail(), it keeps the outer loop spinning again.
> 
> Since each iteration takes ca 2ms on my VM, 8000Hz rate gives 1 or 2
> samples free at each iteration.  Thus at each time snd_pcm_lib_xfer()
> is invoked, it processes 1 or 2 samples, then returns due to pending
> signals, and the outer loop continues until the whole given samples
> are consumed.  If the machine is faster or the sample rate is lower,
> the outer loop may exit, OTOH.

OK, that makes sense. I didn't think about that case. In my mind I was
working with avail_min=period_size.

Thanks for clearing this up.

- Lars


More information about the Alsa-devel mailing list