diff --git a/plugins/linux-capture/pipewire-capture.c b/plugins/linux-capture/pipewire-capture.c index 7f4c0ee66..419732823 100644 --- a/plugins/linux-capture/pipewire-capture.c +++ b/plugins/linux-capture/pipewire-capture.c @@ -110,6 +110,8 @@ static void pipewire_capture_video_render(void *data, gs_effect_t *effect) obs_pipewire_video_render(data, effect); } +static bool initialized = false; + void pipewire_capture_load(void) { uint32_t available_capture_types = portal_get_available_capture_types(); @@ -173,9 +175,11 @@ void pipewire_capture_load(void) obs_register_source(&pipewire_window_capture_info); pw_init(NULL, NULL); + initialized = true; } void pipewire_capture_unload(void) { - pw_deinit(); + if (initialized) + pw_deinit(); }