diff --git a/libobs-opengl/gl-x11.c b/libobs-opengl/gl-x11.c index b2a966198..11a8591f4 100644 --- a/libobs-opengl/gl-x11.c +++ b/libobs-opengl/gl-x11.c @@ -276,9 +276,9 @@ void gl_platform_destroy(struct gl_platform *platform) Display *dpy = platform->swap.wi->display; glXMakeCurrent(dpy, None, NULL); + gl_platform_cleanup_swapchain(&platform->swap); glXDestroyContext(dpy, platform->context); gl_windowinfo_destroy(platform->swap.wi); - gl_platform_cleanup_swapchain(&platform->swap); bfree(platform); } diff --git a/libobs/obs-output.c b/libobs/obs-output.c index 08020ce7b..a864f4915 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -118,6 +118,15 @@ void obs_output_destroy(obs_output_t output) if (output->context.data) output->info.destroy(output->context.data); + if (output->video_encoder) { + obs_encoder_remove_output(output->video_encoder, + output); + } + if (output->audio_encoder) { + obs_encoder_remove_output(output->audio_encoder, + output); + } + pthread_mutex_destroy(&output->interleaved_mutex); obs_context_data_free(&output->context); bfree(output);