summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2015-08-07 17:27:48 +0530
committerTim-Philipp Müller <tim@centricular.com>2015-08-31 23:16:07 +0100
commit77f68f6e108c9712792f92d8a9b92e66efc4a4fb (patch)
treef6cb3270eb535767a56e751ad8390cc216911bd8
parentcf1d116b19802d6bde8ae4589d5dd64ecb924945 (diff)
qmlsink: Ensure that at least one windowing system is available
Otherwise, we'll just crash at runtime because the gl context is NULL https://bugzilla.gnome.org/show_bug.cgi?id=754108
-rw-r--r--configure.ac17
-rw-r--r--ext/qt/qtitem.cc4
2 files changed, 17 insertions, 4 deletions
diff --git a/configure.ac b/configure.ac
index d8d010912..caaf3ec25 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2647,13 +2647,26 @@ AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
HAVE_QT="no"
else
HAVE_QT="yes"
+ HAVE_QT_WINDOWING="no"
PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
QT_LIBS="$QT_LIBS $QT_X11_LIBS"
- AC_SUBST([QT_CFLAGS])
- AC_SUBST([QT_LIBS])
+ HAVE_QT_WINDOWING="yes"
], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
+ PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
+ AC_DEFINE([HAVE_QT_WAYLAND], [],
+ [Define if Qt Wayland integration is installed])
+ QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
+ QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
+ HAVE_QT_WINDOWING="yes"
+ ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
+ if test "x$HAVE_QT_WINDOWING" = "xno"; then
+ AC_MSG_WARN([Could not find any Qt Windowing integration])
+ HAVE_QT="no"
+ fi
+ AC_SUBST([QT_CFLAGS])
+ AC_SUBST([QT_LIBS])
fi
], [
HAVE_QT="no"
diff --git a/ext/qt/qtitem.cc b/ext/qt/qtitem.cc
index 9e9e28751..6f2200079 100644
--- a/ext/qt/qtitem.cc
+++ b/ext/qt/qtitem.cc
@@ -37,7 +37,7 @@
#include <gst/gl/x11/gstglcontext_glx.h>
#endif
-#if GST_GL_HAVE_WINDOW_WAYLAND
+#if GST_GL_HAVE_WINDOW_WAYLAND && defined (HAVE_QT_WAYLAND)
#include <gst/gl/wayland/gstgldisplay_wayland.h>
#endif
@@ -273,7 +273,7 @@ QtGLVideoItem::onSceneGraphInitialized ()
platform, gl_api);
}
#endif
-#if GST_GL_HAVE_WINDOW_WAYLAND
+#if GST_GL_HAVE_WINDOW_WAYLAND && defined (HAVE_QT_WAYLAND)
if (GST_IS_GL_DISPLAY_WAYLAND (this->priv->display)) {
platform = GST_GL_PLATFORM_EGL;
gl_api = gst_gl_context_get_current_gl_api (platform, NULL, NULL);