On Dec 10, 2015, at 11:24 AM, Clemens Ladisch <clemens@xxxxxxxxxx> wrote: > > Rob Duncan wrote: >> Is it ever correct for snd_pcm_avail() to return a value that’s greater >> than that returned by snd_pcm_hw_params_get_buffer_size()? > > Yes, but only if have disabled stop-on-underrun (by setting the > stop_threshold to the boundary value). Here’s the dump of my PCM: stream : PLAYBACK access : RW_INTERLEAVED format : S16_LE subformat : STD channels : 1 rate : 44100 exact rate : 44100 (44100/1) msbits : 16 buffer_size : 4096 period_size : 1024 period_time : 23219 tstamp_mode : NONE tstamp_type : MONOTONIC period_step : 1 avail_min : 1024 period_event : 0 start_threshold : 4096 stop_threshold : 4096 silence_threshold: 0 silence_size : 0 boundary : 1073741824 The stop_threshold is 4096 (i.e. not the boundary). >> I call snd_pcm_recover() and then snd_pcm_avail() again and now I get >> 4126 frames. >> >> As you can see the time between these two logs is less than >> 1 millisecond, so I don’t understand how the PCM can go from >> 2080 frames available to >4096 frames available so quickly. > > This sounds like a bug. Which version of alsa-lib are you using? This was done with version 1.1.0, but I also get it 1.0.23. Thanks, Rob. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel