[pipewire-jack] JACK-Transport API is NO-OP on non-activated clients
The following JACK-Transport API calls should be valid and may be called and effective to any JACK-client, regardless of its activation state: jack_transport_start()
, jack_transport_stop()
, jack_transport_locate()
, jack_transport_reposition()
, jack_transport_query()
(maybe others).
The case in issue for pipewire-jack that is, the above only seems to take effect for activated clients; deactivated clients are then often reset to JackTransportStopped
state and position zero (frame 0), which is found not compliant to genuine JACK-Transport API.
Also, the sync_callback, that is set by jack_set_sync_callback()
, must only be called for activated clients! pipewire-jack implementation seems to call this on deactivated clients too, at least once, prior to activation.
Note: an activated client is one such that jack_activate()
have been called successfully; deactivated clients are those for which jack_deactivate()
have been called or jack_activate()
has not been yet; regardless of whether a client has a process_callback defined or not.
(as tested in v0.3.69, openSUSE Tumbleweed)