summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-09-24 18:51:39 +0200
committerSebastian Dröge <sebastian@centricular.com>2015-09-24 18:51:39 +0200
commitbcda593f12a4ccdba14f6c1eb2bdd7cd9877194c (patch)
tree3b32589e2c6b634a2c4a0e59bdb7636602a28919
parent4807201b042fae599cc6a75454a1a0ca6585f240 (diff)
downloadgstreamer-plugins-bad-bcda593f12a4ccdba14f6c1eb2bdd7cd9877194c.tar.gz
gtk: Only run from the main thread in stop() if we created the window
We're not doing anything at all from the main thread in other cases.
-rw-r--r--ext/gtk/gstgtkbasesink.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c
index 57c5a060a..e11627b5b 100644
--- a/ext/gtk/gstgtkbasesink.c
+++ b/ext/gtk/gstgtkbasesink.c
@@ -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