LADI
/
spa
1
Fork 0
spa/src
Wim Taymans a544c5d4ad impl-node: don't move rate/quantum when moving drivers
When we move a node from one driver to another, don't move the rate
and quantum because this tricks the new driver into thinking it's
already in the correct rate and it will skip doing a complete rate
switch.

This causes some nodes to fail to switch to the new rate, like in this
scenario:

1. mpv (node.always-process = true) appears and is added to the dummy
   driver with rate/quantum of 48000/512
2. mpv is linked to an equalizer, linked to a sink, nodes are moved
   to the new sink, target rate/quantum is copied to the new sink.
3. sink and followers are started in 48000/512, all is good. The sink
   is now configured in 48000/512.
4. mpv is stopped, sinks and eq (input, not output) suspend
5. mpv appears again with 44100/512 and is added to dummy driver, which
   is then configured in 44100/512
6. mpv is linked again to eq, nodes are moved, the sink rate/quantum
   is copied and the sink thinks it's in 44100/512
7. sink and followes are started but no rate switch is happening because
   rate/quantum was copied in step 6. Some followers are not suspended
   and don't apply the rate change correctly (eq output).

By eliminating the rate/quantum copy when moving drivers, the sink will
correctly perform the rate change on all nodes.

Fixes #3159
2023-04-25 10:13:02 +02:00
..
daemon jack: Add jack.max-client-ports config option 2023-04-21 15:42:57 +02:00
examples core: add bound_props event 2023-03-21 17:22:27 +01:00
gst gst/pipewiresrc: Let GstBaseSrc handle pseudo-live calculations 2023-04-19 19:22:24 +00:00
modules raop-sink: only set volume when connected 2023-04-22 11:16:55 +02:00
pipewire impl-node: don't move rate/quantum when moving drivers 2023-04-25 10:13:02 +02:00
tests core: add bound_props event 2023-03-21 17:22:27 +01:00
tools pw-config: fix include for isatty 2023-04-20 10:40:47 +02:00
meson.build