summaryrefslogtreecommitdiff
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-05-16 10:44:25 +0300
commit0849a9b3c843c05c7b180a04737317f8f5a60725 (patch)
tree43dfa7e78fd727194b7b11266058e1b22e9ad191
parent597437a0964faa9e58d67395f43c09f62989c681 (diff)
downloadweston-0849a9b3c843c05c7b180a04737317f8f5a60725.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> (cherry picked from commit 278fe4d7d47c7828d42047f4c910f1d815d32b80)
-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);