[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