mirror of
https://git.yoctoproject.org/poky
synced 2026-03-17 04:39:40 +01:00
gstreamer1.0-plugins-good: Fix build when egl is enabled but no x11/wayland
This fixes build errors seen in no-x11/no-wayland configuration ( eglfs ) and when QT5 support is enabled (From OE-Core rev: 03e498cd7e35902202579d404f4aad5c92664f18) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
From 3e0d5577444b32579bdf5b69d720a322322ff7bc Mon Sep 17 00:00:00 2001
|
||||
From: Milian Wolff <milian.wolff@kdab.com>
|
||||
Date: Tue, 26 Nov 2019 15:08:20 +0100
|
||||
Subject: [PATCH] qmlgl: ensure Qt defines GLsync to fix compile on some platforms
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
By explictly including QtGui/qopengl.h we force the code path that
|
||||
defines GLsync in the Qt-specific way. Without that, some platforms
|
||||
failed to compile the qmlgl plugin, since neither Qt nor gstreamer
|
||||
defined GLsync then, leading to e.g.:
|
||||
|
||||
```
|
||||
make[4]: Entering directory '/.../gst-plugins-good-1.16.1/ext/qt'
|
||||
CXX libgstqmlgl_la-qtitem.lo
|
||||
In file included from gstqtgl.h:32,
|
||||
from qtitem.h:27,
|
||||
from qtitem.cc:28:
|
||||
/.../usr/include/gstreamer-1.0/
|
||||
gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
|
||||
ret (GSTGLAPI *name) args;
|
||||
^
|
||||
/.../usr/include/gstreamer-1.0/
|
||||
gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro
|
||||
‘GST_GL_EXT_FUNCTION’
|
||||
GST_GL_EXT_FUNCTION (GLsync, FenceSync,
|
||||
^~~~~~~~~~~~~~~~~~~
|
||||
```
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/3e0d5577444b32579bdf5b69d720a322322ff7bc]
|
||||
---
|
||||
ext/qt/gstqtgl.h | 18 +++++++++++-------
|
||||
1 file changed, 11 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/ext/qt/gstqtgl.h
|
||||
+++ b/ext/qt/gstqtgl.h
|
||||
@@ -22,14 +22,7 @@
|
||||
#include <QtGui/qtgui-config.h>
|
||||
#endif
|
||||
|
||||
-/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
|
||||
- * type which confuses the preprocessor. Instead of trying to reconcile the
|
||||
- * two, we instead use the GLsync definition from Qt from above, and ensure
|
||||
- * that we don't typedef GLsync in gstglfuncs.h */
|
||||
#include <gst/gl/gstglconfig.h>
|
||||
-#undef GST_GL_HAVE_GLSYNC
|
||||
-#define GST_GL_HAVE_GLSYNC 1
|
||||
-#include <gst/gl/gstglfuncs.h>
|
||||
|
||||
/* The glext.h guard was renamed in 2018, but some software which
|
||||
* includes their own copy of the GL headers (such as qt) might have
|
||||
@@ -46,6 +39,17 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+/* pulls in GLsync, see below */
|
||||
+#include <QtGui/qopengl.h>
|
||||
+
|
||||
+/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
|
||||
+ * type which confuses the preprocessor. Instead of trying to reconcile the
|
||||
+ * two, we instead use the GLsync definition from Qt from above, and ensure
|
||||
+ * that we don't typedef GLsync in gstglfuncs.h */
|
||||
+#undef GST_GL_HAVE_GLSYNC
|
||||
+#define GST_GL_HAVE_GLSYNC 1
|
||||
+#include <gst/gl/gstglfuncs.h>
|
||||
+
|
||||
#if defined(QT_OPENGL_ES_2)
|
||||
#include <QtGui/QOpenGLContext>
|
||||
#include <QtGui/QOpenGLFunctions>
|
||||
@@ -0,0 +1,56 @@
|
||||
From d08234a659bec1fd5c984fedefbeb8192af07839 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Tue, 31 Mar 2020 21:23:28 -0700
|
||||
Subject: [PATCH] qt: include ext/qt/gstqtgl.h instead of gst/gl/gstglfuncs.h
|
||||
|
||||
gst/gl/gstglfuncs.h is included via ext/qt/gstqtgl.h which has logic to
|
||||
prefer qt headers definitions for GLsync
|
||||
|
||||
This helps in fixing build errors like below
|
||||
|
||||
/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/QtGui/qopengles2ext.h:24:26: error: conflicting declaration 'typedef struct __GLsync* GLsync'
|
||||
24 | typedef struct __GLsync *GLsync;
|
||||
| ^~~~~~
|
||||
In file included from /mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/gstglfuncs.h:84,
|
||||
from ../gst-plugins-good-1.16.2/ext/qt/gstqsgtexture.cc:30:
|
||||
/mnt/b/yoe/build/tmp/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/gstreamer1.0-plugins-good/1.16.2-r0/recipe-sysroot/usr/include/gstreamer-1.0/gst/gl/glprototypes/gstgl_compat.h:40:18: note: previous declaration as 'typedef void* GLsync
|
||||
'
|
||||
40 | typedef gpointer GLsync;
|
||||
| ^~~~~~
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
ext/qt/gstqsgtexture.cc | 2 +-
|
||||
ext/qt/qtwindow.cc | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/ext/qt/gstqsgtexture.cc b/ext/qt/gstqsgtexture.cc
|
||||
index 2b314e0..12b15dd 100644
|
||||
--- a/ext/qt/gstqsgtexture.cc
|
||||
+++ b/ext/qt/gstqsgtexture.cc
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#include <gst/video/video.h>
|
||||
#include <gst/gl/gl.h>
|
||||
-#include <gst/gl/gstglfuncs.h>
|
||||
+#include <ext/qt/gstqtgl.h>
|
||||
#include "gstqsgtexture.h"
|
||||
|
||||
#define GST_CAT_DEFAULT gst_qsg_texture_debug
|
||||
diff --git a/ext/qt/qtwindow.cc b/ext/qt/qtwindow.cc
|
||||
index 62d26b6..bf68ebb 100644
|
||||
--- a/ext/qt/qtwindow.cc
|
||||
+++ b/ext/qt/qtwindow.cc
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#include <gst/video/video.h>
|
||||
-#include <gst/gl/gstglfuncs.h>
|
||||
+#include <ext/qt/gstqtgl.h>
|
||||
#include "qtwindow.h"
|
||||
#include "gstqsgtexture.h"
|
||||
#include "gstqtglutility.h"
|
||||
--
|
||||
2.26.0
|
||||
|
||||
@@ -2,6 +2,8 @@ require gstreamer1.0-plugins-common.inc
|
||||
|
||||
SRC_URI = " \
|
||||
https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-${PV}.tar.xz \
|
||||
file://0001-qmlgl-ensure-Qt-defines-GLsync-to-fix-compile-on-som.patch \
|
||||
file://0001-qt-include-ext-qt-gstqtgl.h-instead-of-gst-gl-gstglf.patch \
|
||||
"
|
||||
|
||||
SRC_URI[md5sum] = "bd025f8f14974f94b75ac69a9d1b9c93"
|
||||
|
||||
Reference in New Issue
Block a user