diff options
Diffstat (limited to 'media-video/pipewire/files/0.3.73/0001-impl-node-remove-node-target-peers.patch')
-rw-r--r-- | media-video/pipewire/files/0.3.73/0001-impl-node-remove-node-target-peers.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/media-video/pipewire/files/0.3.73/0001-impl-node-remove-node-target-peers.patch b/media-video/pipewire/files/0.3.73/0001-impl-node-remove-node-target-peers.patch new file mode 100644 index 000000000000..fac8233ee916 --- /dev/null +++ b/media-video/pipewire/files/0.3.73/0001-impl-node-remove-node-target-peers.patch @@ -0,0 +1,30 @@ +https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/4456f2efd16d6190989a903f70f4419c2ca4c819 +https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3316 +https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3345 + +From 4456f2efd16d6190989a903f70f4419c2ca4c819 Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wtaymans@redhat.com> +Date: Mon, 10 Jul 2023 16:59:17 +0200 +Subject: [PATCH] impl-node: remove the node from the target peers + +When we destroy a node, we need to remove the node as a current +driver peer. + +Not doing this has 2 problems: +- remote drivers still trigger our node +- the client-node does not clean up the memid for the activation and + we might reuse it later for a new node with the same fd. + +See #3316 +--- a/src/pipewire/impl-node.c ++++ b/src/pipewire/impl-node.c +@@ -1983,6 +1983,7 @@ void pw_impl_node_destroy(struct pw_impl_node *node) + + /* remove ourself as a follower from the driver node */ + spa_list_remove(&node->follower_link); ++ pw_impl_node_emit_peer_removed(node->driver_node, node); + remove_segment_owner(node->driver_node, node->info.id); + + spa_list_consume(follower, &node->follower_list, follower_link) { +-- +GitLab |