From 35534baf9d63d96e32335bdccf04aa61694e6906 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 19 Aug 2020 11:23:16 +0200 Subject: [PATCH] remote-node: clear up mix structures when port is removed --- src/modules/module-client-node/remote-node.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/modules/module-client-node/remote-node.c b/src/modules/module-client-node/remote-node.c index 849a0d289..00ad1363d 100644 --- a/src/modules/module-client-node/remote-node.c +++ b/src/modules/module-client-node/remote-node.c @@ -1041,6 +1041,7 @@ static void node_port_info_changed(void *data, struct pw_impl_port *port, static void node_port_removed(void *data, struct pw_impl_port *port) { struct node_data *d = data; + struct mix *mix, *tmp; pw_log_debug("removed %p", d); @@ -1051,6 +1052,11 @@ static void node_port_removed(void *data, struct pw_impl_port *port) port->direction, port->port_id, 0, 0, NULL, NULL); + + spa_list_for_each_safe(mix, tmp, &d->mix[port->direction], link) { + if (mix->port == port) + clear_mix(d, mix); + } } static void node_active_changed(void *data, bool active)