pw-jack: jack_recompute_total_latencies() not implemented
Version: master (df8bd852)
Description of Problem:
Missing latency computation support breaks Ardour's latency compensation whenever anything changes. Running a debug Ardour build with -DLatencyCompensation:
DEBUG::LatencyCompensation: update_latency_compensation.
DEBUG::LatencyCompensation: update_route_latency: CAPTURE apply_to_delayline? no)
DEBUG::LatencyCompensation: update_route_latency: worst proc latency: 0 (changed? yes) recursions: 0
DEBUG::LatencyCompensation: update_latency_compensation: delegate to engine
[W][01334.551957][ pipewire-jack.c: 4725 jack_recompute_total_latencies()] jack-client 0x564f74c4e940: not implemented
DEBUG::LatencyCompensation: update_latency_compensation: complete
It should look more like this (note the engine latency callbacks):
DEBUG::LatencyCompensation: update_latency_compensation of whole graph.
DEBUG::LatencyCompensation: update_route_latency: CAPTURE apply_to_delayline? no)
DEBUG::LatencyCompensation: update_route_latency: worst proc latency: 0 (changed? no) recursions: 0
DEBUG::LatencyCompensation: update_latency_compensation: delegate to engine
DEBUG::LatencyCompensation: update_latency_compensation: complete
DEBUG::LatencyCompensation: Engine latency callback: CAPTURE (initial/deletion: 0 adding: 0 deletion: 0)
DEBUG::LatencyCompensation: Worst input latency: 768
DEBUG::LatencyCompensation: update_route_latency: CAPTURE apply_to_delayline? no)
DEBUG::LatencyCompensation: update_route_latency: worst proc latency: 0 (changed? no) recursions: 0
DEBUG::LatencyCompensation: Engine latency callback: DONE
DEBUG::LatencyCompensation: Engine latency callback: PLAYBACK (initial/deletion: 0 adding: 0 deletion: 0)
DEBUG::LatencyCompensation: Worst output latency: 256
DEBUG::LatencyCompensation: update_route_latency: PLAYBACK apply_to_delayline? yes)
DEBUG::LatencyCompensation: update_route_latency: worst proc latency: 0 (changed? no) recursions: 0
DEBUG::LatencyCompensation: Engine latency callback: DONE
To reproduce, create a new Ardour project, and add a latent plug-in (e.g. a limiter or compressor with lookahead) to the master bus. The latency display at the top does not change. Saving and reloading Ardour updates it, but then you're stuck again. Clicking "Disable PDC" does not toggle the latency.