Hello Wim,
Thanks for the info.
Q5. Do all
Jack clients see the same (and correct) info
regarding the state of the DLL in all cases ?
Yes, if they are using the same driver.
I have not yet looked at the actual DLL, but some of
the related functions seem to be wrong.
In pipewire-jack.c:
jack_time_t jack_frames_to_time():
df = (frames - pos->clock.position) * ...
jack_nframes_t jack_time_to_frames():
du = (usecs - pos->clock.nsec/SPA_NSEC_PER_USEC) * ...
In both cases, the value computed inside the () should be
signed. But since both arguments are unsigned, so will be
their difference. See the original jack sources for how
to handle this.
Similar considerations apply in all related functions,
so I do expect some other bugs.
Ciao,
--
FA