Hello On Fri, Nov 10, 2017 at 13:29:43 +0100, Henrik Eriksson wrote: > 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? Or, rather, in snd_pcm_dnsoop_status() would it not make more sense to use the dsnoop->update_tstamp as tstamp in the returned status, at least when the state is SNDRV_PCM_STATE_RUNNING? The returned status->avail count originates from snd_pcm_dsnoop_sync_ptr() and it seems sensible to me that the tstamp would match that. For background, this is on a machine with not mmap'ed status and control (in pcm_hw.c) and using slowptr in dsnoop. Regards, /henrik _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel