[alsa-devel] snd_pcm_avail_update returns 0

Jaroslav Kysela perex at perex.cz
Thu Jan 14 16:05:40 CET 2010


On Thu, 14 Jan 2010, Singaravelan Nallasellan wrote:

> Hi,
>
> Our audio driver uses the indirect PCM data transfer mechanism to
> transfer the buffer pointers and the size of the buffer to the Audio
> engine which DMAs the PCM data to the sound card.
>
> The driver uses the .ack callback to receive the buffer pointer and
> the size. It also sends it to the audio engine.
>
> We are facing a problem when we play long wav file using our driver.
>
> The application has written the PCM data and the ring buffer is full.
> snd_pcm_avail_update returns 0 sporadically. But the .ack callback was
> not called. The playback is stuck. It is not progressing.
>
> I have tried with pulseaudio (0.9.15) and with my own player. Both
> gives the same result.
>
> I would appreciate if somebody could provide some pointer to identify
> the cause of this issue. Let me know if anybody needs more info.

No idea. You may put some debug printk lines to snd_pcm_lib_write1() 
routine if all correspoding write sequences ends with ->ack callback 
call.

 					Jaroslav

-----
Jaroslav Kysela <perex at perex.cz>
Linux Kernel Sound Maintainer
ALSA Project, Red Hat, Inc.



More information about the Alsa-devel mailing list