[alsa-devel] dsnoop, hwpointer and avail

Henrik Eriksson henrik.eriksson at axis.com
Fri Nov 10 13:29:43 CET 2017


Hello

Is there any documentation/rationale for how pcm_dsnoop works in
snd_pcm_{dsnoop_}status?  I am particularly wondering about the ordering
of the snd_pcm_dsnoop_sync_ptr and the snd_pcm_status call on the slave
pcm.

I see occasional spikes (>1000 frames) of difference between the slave
pcm hwpointer after the snd_pcm_status call on it and the pointers in
the dsnoop pcm, and a correspondingly bad avail count.  I suspect the
mismatches are due to process scheduling (the slave pcm status is
delayed because the application process not running and the hardware
progresses during that delay).  Does this seem plausible?  If so, could
the code be simplified to reduce the the number of systemcalls needed?
The status of the slave pcm seems to provide much of the information
used to sync the pointers.  Or is there some other way to get a tighter
coupling between the dsnoop status htstamp and avail count?

Regards,
/henrik


More information about the Alsa-devel mailing list