[LAD] interrupt-drive ALSA returning buffers too small

Gabriel Beddingfield gabrbedd at gmail.com
Wed Sep 8 20:44:17 UTC 2010


Hello,

On Wed, Sep 8, 2010 at 9:18 AM, Gabriel M. Beddingfield
<gabrbedd at gmail.com> wrote:
>
> I've set alsa to wake me up every N frames.  However, when I awake, I find
> that I often have fewer than N frames available:
[snip]
>
>  snd_pcm_sw_params_set_avail_min (playback_handle, sw_params, N)
>
>  /* ... */
>  while(1) {
>     err = snd_pcm_wait(playback_handle, 1000);
>     assert(err >= 0); /* OK */
>
>     frames_to_deliver = snd_pcm_avail_update(playback_handle);
>     assert(frames_to_deliver >= 0); /* OK */
>
>     /* this fails about every other cycle: */
>     assert(frames_to_deliver >= N);
>
>  }

FYI, I compiled Paul's example code and it did the same thing.

Is this a limitation of this method?  Should I switch to the "polling" API?

...or perhaps switch to clalsadrv?  :-)

Thanks in advance,
Gabriel



More information about the Linux-audio-dev mailing list