gl/examples/gtk: call XInitThreads
authorMatthew Waters <matthew@centricular.com>
Thu, 17 Mar 2016 05:31:52 +0000 (16:31 +1100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:18 +0000 (19:32 +0000)
Fixes some sporadic X11 threading assertions.

tests/examples/gl/gtk/filtervideooverlay/Makefile.am
tests/examples/gl/gtk/filtervideooverlay/main.cpp
tests/examples/gl/gtk/fxtest/Makefile.am
tests/examples/gl/gtk/fxtest/fxtest.c
tests/examples/gl/gtk/fxtest/pixbufdrop.c
tests/examples/gl/gtk/gtkvideooverlay/Makefile.am
tests/examples/gl/gtk/gtkvideooverlay/main.cpp

index 2bf658b..301b2aa 100644 (file)
@@ -4,8 +4,8 @@ filtervideooverlay_SOURCES = main.cpp
 
 filtervideooverlay_CXXFLAGS=-I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
     $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) \
-       $(GL_CFLAGS) $(GTK3_CFLAGS)
+       $(GL_CFLAGS) $(GTK3_CFLAGS)  $(X11_CFLAGS)
 filtervideooverlay_LDADD=../libgstgtkhelper.la \
        $(GTK3_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) \
-       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION)
+       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION) $(X11_LIBS)
 
index 5a5c9f5..6850a7d 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <gst/gst.h>
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 
 #include "../gstgtk.h"
 
+#ifdef HAVE_X11
+#include <X11/Xlib.h>
+#endif
 
 static GstBusSyncReply create_window (GstBus* bus, GstMessage* message, GtkWidget* widget)
 {
@@ -149,6 +156,10 @@ static gchar* slider_fps_cb (GtkScale* scale, gdouble value, GstElement* pipelin
 
 gint main (gint argc, gchar *argv[])
 {
+#ifdef HAVE_X11
+    XInitThreads ();
+#endif
+
     gtk_init (&argc, &argv);
     gst_init (&argc, &argv);
 
index de052af..e078906 100644 (file)
@@ -5,16 +5,16 @@ fxtest_SOURCES = fxtest.c
 
 fxtest_CFLAGS=-I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
-       $(GL_CFLAGS) $(GTK3_CFLAGS)
+       $(GL_CFLAGS) $(GTK3_CFLAGS) $(X11_CFLAGS)
 fxtest_LDADD=../libgstgtkhelper.la \
        $(GTK3_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS)  \
-       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION)
+       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION) $(X11_LIBS)
 
 pixbufdrop_SOURCES = pixbufdrop.c
 
 pixbufdrop_CFLAGS=-I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
-       $(GL_CFLAGS) $(GTK3_CFLAGS)
+       $(GL_CFLAGS) $(GTK3_CFLAGS) $(X11_CFLAGS)
 pixbufdrop_LDADD=../libgstgtkhelper.la \
        $(GTK3_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) \
-       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION)
+       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION) $(X11_LIBS)
index c1cddea..6200659 100644 (file)
 
 #include <gst/video/videooverlay.h>
 
+#ifdef HAVE_X11
+#include <X11/Xlib.h>
+#endif
+
 
 static GstBusSyncReply
 create_window (GstBus * bus, GstMessage * message, GtkWidget * widget)
@@ -179,6 +183,10 @@ main (gint argc, gchar * argv[])
   GstBus *bus;
   GError *error = NULL;
 
+#ifdef HAVE_X11
+  XInitThreads ();
+#endif
+
   GtkWidget *window;
   GtkWidget *screen;
   GtkWidget *vbox, *combo;
index 69bf3af..3a43de2 100644 (file)
 
 #include <gst/video/videooverlay.h>
 
+#ifdef HAVE_X11
+#include <X11/Xlib.h>
+#endif
+
 static gint delay = 0;
 static gint saveddelay = 0;
 static gint method = 1;
@@ -200,6 +204,10 @@ main (gint argc, gchar * argv[])
     {NULL}
   };
 
+#ifdef HAVE_X11
+  XInitThreads ();
+#endif
+
   context = g_option_context_new (NULL);
   g_option_context_add_main_entries (context, options, NULL);
   g_option_context_add_group (context, gst_init_get_option_group ());
@@ -219,7 +227,7 @@ main (gint argc, gchar * argv[])
   if (source_desc == NULL) {
     source_desc =
         g_strdup
-        ("videotestsrc ! video/x-raw, width=352, height=288 ! identity");
+        ("videotestsrc ! video/x-raw, width=352, height=288 ! identity ! glupload");
   }
 
   sourcebin =
index bab0e5b..d6da10d 100644 (file)
@@ -4,8 +4,8 @@ gtkvideooverlay_SOURCES = main.cpp
 
 gtkvideooverlay_CXXFLAGS=-I$(top_srcdir)/gst-libs -I$(top_builddir)/gst-libs \
        $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) \
-       $(GL_CFLAGS) $(GTK3_CFLAGS)
+       $(GL_CFLAGS) $(GTK3_CFLAGS)  $(X11_CFLAGS)
 gtkvideooverlay_LDADD=../libgstgtkhelper.la \
        $(GTK3_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) \
-       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION)
+       $(GL_LIBS) -lgstvideo-$(GST_API_VERSION) $(X11_LIBS)
 
index 8d886b5..5ca8108 100644 (file)
  * Boston, MA 02110-1301, USA.
  */
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
 #include <gst/gst.h>
 #include <gtk/gtk.h>
 #include <gdk/gdk.h>
 
 #include "../gstgtk.h"
 
+#ifdef HAVE_X11
+#include <X11/Xlib.h>
+#endif
+
 
 static GstBusSyncReply create_window (GstBus* bus, GstMessage* message, GtkWidget* widget)
 {
@@ -140,6 +148,10 @@ static gchar* slider_fps_cb (GtkScale* scale, gdouble value, GstElement* pipelin
 
 gint main (gint argc, gchar *argv[])
 {
+#ifdef HAVE_X11
+    XInitThreads ();
+#endif
+
     GtkWidget *area;
     gst_init (&argc, &argv);
     gtk_init (&argc, &argv);