[alsa-devel] snd_pcm_avail_update returns 0

Singaravelan Nallasellan singaravelann at gmail.com
Thu Jan 14 17:17:45 CET 2010


Thanks again.

Sorry, I missed to ask you another question.

How does the ring buffer full detected in the core?

>
> hw_ptr and appl_ptr are from range 0..boundary to detect xruns. The driver
> should not write to these values and should track own pointers.

The driver does not update the pointers. It has its own pointers
wherever required.

>
>> Moreover our driver uses the batch mode and updates the hardware
>> pointer for every period. Is it the right way to do?
>
>
>> Moreover our driver uses the batch mode and updates the hardware
>> pointer for every period. Is it the right way to do?
>
> I'm not sure about what pointers you're talking. If it's hw_ptr and
> appl_ptr, then driver shouldn't write to these pointers. The
> snd_pcm_period_elapsed() function should be called to synchronize hw_ptr
> when playback of period is finished.
>
The driver does not update the appl_ptr and hw_ptr. .pointer function
just returns the pos returned by the snd_pcm_indirect_playback_pointer
function. This function is called with the pointer returned from the
audio engine.
> Maybe you can put your code to a public place so we can check it.
>
Sure, can I send the complete code to this ml?
>
>                                                Jaroslav
>
> -----
> Jaroslav Kysela <perex at perex.cz>
> Linux Kernel Sound Maintainer
> ALSA Project, Red Hat, Inc.
>
>


More information about the Alsa-devel mailing list