summaryrefslogtreecommitdiff
path: root/pipewire
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2023-02-16 21:39:22 +0200
committerMarius Vlad <marius.vlad@collabora.com>2023-02-20 12:42:43 +0200
commit278fe4d7d47c7828d42047f4c910f1d815d32b80 (patch)
tree9c4f0a1174225b813f6e0ad44fe124bcc5bd237e /pipewire
parentaa78da24659a97b82bcf1e28b985ea4f9fce4499 (diff)
downloadweston-278fe4d7d47c7828d42047f4c910f1d815d32b80.tar.gz
pipewire: Destroy the pipewire outputs at shutdown
Seems like we are missing destroying the pipewire outputs on the shutdown path; this follow-ups with remoting plug-in as well. Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Diffstat (limited to 'pipewire')
-rw-r--r--pipewire/pipewire-plugin.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/pipewire/pipewire-plugin.c b/pipewire/pipewire-plugin.c
index 2c91ee7f..b8dad03e 100644
--- a/pipewire/pipewire-plugin.c
+++ b/pipewire/pipewire-plugin.c
@@ -631,10 +631,14 @@ weston_pipewire_destroy(struct wl_listener *l, void *data)
{
struct weston_pipewire *pipewire =
wl_container_of(l, pipewire, destroy_listener);
+ struct pipewire_output *p_output, *p_output_next;
weston_log_scope_destroy(pipewire->debug);
pipewire->debug = NULL;
+ wl_list_for_each_safe(p_output, p_output_next, &pipewire->output_list, link)
+ pipewire_output_destroy(p_output->output);
+
wl_event_source_remove(pipewire->loop_source);
pw_loop_leave(pipewire->loop);
pw_loop_destroy(pipewire->loop);