How to interperet snd_pcm_htimestamp available frames?
I am recording from multiple (cheap USB) mics, and trying to synchronize them. I am assuming that there will be a common minimum latency (reflecting an uncontested USB bus), with occasional spikes up - but not down.
In my loop, I am calling snd_pcm_mmap_begin(), snd_pcm_htimestamp(), and snd__mmap_commit() in that order.
My question is about the 'avail' value returned from htimestamp. It is documented as "Number of available frames when timestamp was grabbed". Does this mean frames since the last frame consumed with _mmap_commit()?
Is there a possibility of there being no timestamp, or one where 'avail' refers to some older state?
Thanks for any insight.
-Eric
On Sun, 22 Nov 2020 17:03:35 +0100, Eric Buddington wrote:
I am recording from multiple (cheap USB) mics, and trying to synchronize them. I am assuming that there will be a common minimum latency (reflecting an uncontested USB bus), with occasional spikes up
- but not down.
In my loop, I am calling snd_pcm_mmap_begin(), snd_pcm_htimestamp(), and snd__mmap_commit() in that order.
My question is about the 'avail' value returned from htimestamp. It is documented as "Number of available frames when timestamp was grabbed". Does this mean frames since the last frame consumed with _mmap_commit()?
It's the value that is equivalent with the one in snd_pcm_status and co: the available frames in the ring buffer.
Is there a possibility of there being no timestamp, or one where 'avail' refers to some older state?
It was a quite long time ago that I tested it, but I don't think there has been any significant changes in this regard. I guess Pierre can have better insight.
Takashi
participants (2)
-
Eric Buddington
-
Takashi Iwai