linux-capture: Deinit pipewire only if we init'ed
If you don't have a xdg-desktop-portal backend then pipewire wont init, however on exit we unconditionally deinit which can crash in pipewire which does not handle this gracefully.
This commit is contained in:
parent
2c7b14bc37
commit
26f4d85398
@ -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();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user