gl: XInitThreads when env variable is set
authorMatthew Waters <ystreet00@gmail.com>
Tue, 24 Jun 2014 13:51:24 +0000 (23:51 +1000)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:31:43 +0000 (19:31 +0000)
This is too allow gst-launch debugging with multiple GL contexts as
well as avoiding segfaulting innocent gtk+ apps that have not called
XInitThreads.

https://bugzilla.gnome.org/show_bug.cgi?id=731525

ext/gl/gstopengl.c

index bb692d7..471d5ac 100644 (file)
 #include <bcm_host.h>
 #endif
 
+#if GST_GL_HAVE_WINDOW_X11
+#include <X11/Xlib.h>
+#endif
+
 #define GST_CAT_DEFAULT gst_gl_gstgl_debug
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
 
@@ -91,6 +95,11 @@ plugin_init (GstPlugin * plugin)
   bcm_host_init ();
 #endif
 
+#if GST_GL_HAVE_WINDOW_X11
+  if (g_getenv ("GST_GL_XINITTHREADS"))
+    XInitThreads ();
+#endif
+
   if (!gst_element_register (plugin, "glimagesink",
           GST_RANK_SECONDARY, GST_TYPE_GLIMAGE_SINK)) {
     return FALSE;