gtk: Only run from the main thread in stop() if we created the window
authorSebastian Dröge <sebastian@centricular.com>
Thu, 24 Sep 2015 16:51:39 +0000 (18:51 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 24 Sep 2015 16:51:39 +0000 (18:51 +0200)
We're not doing anything at all from the main thread in other cases.

ext/gtk/gstgtkbasesink.c

index 57c5a06..e11627b 100644 (file)
@@ -342,8 +342,13 @@ gst_gtk_base_sink_stop_on_main (GstBaseSink * bsink)
 static gboolean
 gst_gtk_base_sink_stop (GstBaseSink * bsink)
 {
-  return ! !gst_gtk_invoke_on_main ((GThreadFunc)
-      gst_gtk_base_sink_stop_on_main, bsink);
+  GstGtkBaseSink *gst_sink = GST_GTK_BASE_SINK (bsink);
+
+  if (gst_sink->window)
+    return ! !gst_gtk_invoke_on_main ((GThreadFunc)
+        gst_gtk_base_sink_stop_on_main, bsink);
+
+  return TRUE;
 }
 
 static void