diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-09-24 18:51:39 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-09-24 18:51:39 +0200 |
commit | bcda593f12a4ccdba14f6c1eb2bdd7cd9877194c (patch) | |
tree | 3b32589e2c6b634a2c4a0e59bdb7636602a28919 /ext | |
parent | 4807201b042fae599cc6a75454a1a0ca6585f240 (diff) | |
download | gstreamer-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.
Diffstat (limited to 'ext')
-rw-r--r-- | ext/gtk/gstgtkbasesink.c | 9 |
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 |