From 26471ff2da31b086fefee818e09f6efc58639d84 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 20 Apr 2022 19:25:42 +0200 Subject: [PATCH] module-loopback: unload the module on stream unconnect When one of the streams is unconnected, unload the module. This is what happens when the node was set as dont_reconnect with a node target. Fixes #1754 --- src/modules/module-loopback.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/modules/module-loopback.c b/src/modules/module-loopback.c index d340fee0a..22865875d 100644 --- a/src/modules/module-loopback.c +++ b/src/modules/module-loopback.c @@ -180,6 +180,14 @@ static void stream_state_changed(void *data, enum pw_stream_state old, pw_stream_flush(impl->playback, false); pw_stream_flush(impl->capture, false); break; + case PW_STREAM_STATE_UNCONNECTED: + pw_log_info("module %p: unconnected", impl); + pw_impl_module_schedule_destroy(impl->module); + break; + case PW_STREAM_STATE_ERROR: + pw_log_error("module %p: error: %s", impl, error); + pw_impl_module_schedule_destroy(impl->module); + break; default: break; } @@ -211,7 +219,6 @@ static void playback_destroy(void *d) impl->playback = NULL; } - static void playback_param_changed(void *data, uint32_t id, const struct spa_pod *param) { struct impl *impl = data;