Tim Goetze wrote:
[Clemens Ladisch]
In most cases, the ALSA buffer/period parameters
directly reflect
hardware parameters, but in the case of protocols like USB where it is
not possible to transfer data directly out of a ring buffer, there is an
additional packet queue, which adds latency. (The length of that queue
is either constant or proportional to the period size, depending on the
driver.)
Thanks you Clemens for clearing that up. How would one go about
determining the size of this queue between ALSA and USB?
In the case of the current version of snd-usb-audio, the queue has the
same length as the buffer, but never more than 18 ms.
And is it correct to assume that in a best-case
scenario where the
sample clock is synchronised to the USB clock
Pro devices typically don't do this.
and the period size coincides with the interval at
which USB frames
are signalled,
This does not happen with Jack, where period sizes typically are a power
of two.
the additional latency will be one period?
These two conditions have nothing to do with the queue length; they
ensure that USB interrupts happen exactly at period boundaries, i.e.,
that there is no jitter in the reported period interrupts.
Regards,
Clemens