mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
node: add node.sync-group and node.sync
node.sync-group can contain a list of strings. When a node in the graph sets node.sync = true, it will be scheduled with all of the other nodes with common node.sync-group strings. By default all nodes are placed in group.sync.0 except the freewheel and dummy driver. Use this to ensure that all nodes are grouped under the same driver (that is not the freewheel and dummy driver) as soon as the transport is started so that the transport is visible to all nodes from the same sync-groups. We also don't deactive the sync-group anymore for the node, even if the transport is stopped, to avoid driver changes and transport jumps. When the node that activated the sync/transport is destroyed, things are restored to their original state. Note that this is different from JACK where starting the transport outlives the application and always needs to be explicitly stopped again. We can't really do this (by default) because it leaves the graph in an unnatural state with all devices in sync. The reason for the node.sync-group is that it is possible to still have N different subgraphs with a separate transports by manually specifying the node.sync-group. It's also slightly different from the node.group, that is always active. The sync-group is something you only want to enable in specific cases because it groups drivers together and enables adaptive resampling etc. It's also possible to place this option in the jack.conf file to automatically sync all devices and apps as soon as a jack app is started. Fixes #3850
This commit is contained in:
parent
d063ab7322
commit
06f63f489a
6 changed files with 63 additions and 8 deletions
|
|
@ -6803,6 +6803,7 @@ static int transport_update(struct client* c, int active)
|
|||
pw_log_info("%p: transport %d", c, active);
|
||||
|
||||
pw_thread_loop_lock(c->context.loop);
|
||||
pw_properties_set(c->props, PW_KEY_NODE_SYNC, "true");
|
||||
pw_properties_set(c->props, PW_KEY_NODE_TRANSPORT,
|
||||
active ? "true" : "false");
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue