From 31b770af0b20c33e8b83c2f8bd3ea92f779c0e70 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Mon, 6 Jul 2015 19:33:35 +0200 Subject: [PATCH] gtkglsink: Release the widget lock when trying to get the GL context Otherwise we might be waiting for the lock on the main loop (for example in the ->render vmethod) and thus we will deadlock. --- ext/gtk/gtkgstglwidget.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/gtk/gtkgstglwidget.c b/ext/gtk/gtkgstglwidget.c index e7e12210cd..81950342d5 100644 --- a/ext/gtk/gtkgstglwidget.c +++ b/ext/gtk/gtkgstglwidget.c @@ -683,7 +683,9 @@ gtk_gst_gl_widget_init_winsys (GtkGstGLWidget * widget) } if (!widget->priv->other_context) { + g_mutex_unlock (&widget->priv->lock); _invoke_on_main ((ThreadFunc) _get_gl_context, widget); + g_mutex_lock (&widget->priv->lock); } if (!GST_GL_IS_CONTEXT (widget->priv->other_context)) {