diff --git a/src/gst/gstpipewiredeviceprovider.c b/src/gst/gstpipewiredeviceprovider.c index 744cf2752..4ba265a66 100644 --- a/src/gst/gstpipewiredeviceprovider.c +++ b/src/gst/gstpipewiredeviceprovider.c @@ -792,6 +792,7 @@ gst_pipewire_device_provider_probe (GstDeviceProvider * provider) GST_DEBUG_OBJECT (self, "disconnect"); g_clear_pointer ((struct pw_proxy**)&self->registry, pw_proxy_destroy); + spa_hook_remove (&self->core_listener); pw_thread_loop_unlock (self->core->loop); g_clear_pointer (&self->core, gst_pipewire_core_release); @@ -866,6 +867,7 @@ gst_pipewire_device_provider_stop (GstDeviceProvider * provider) g_clear_pointer ((struct pw_proxy**)&self->registry, pw_proxy_destroy); if (self->core != NULL) { + spa_hook_remove (&self->core_listener); pw_thread_loop_unlock (self->core->loop); } g_clear_pointer (&self->core, gst_pipewire_core_release);