gstreamer/ext/qt
Milian Wolff 3e0d557744 qmlgl: ensure Qt defines GLsync to fix compile on some platforms
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,
 ^~~~~~~~~~~~~~~~~~~
```
2020-03-05 03:21:48 +00:00
..
gstplugin.cc qt: fix build with qmake 2017-09-07 09:39:13 +01:00
gstqsgtexture.cc qt: fix broken build due to commit 2fd84a6c for gstgl 2017-08-22 13:44:20 +01:00
gstqsgtexture.h qmlglsink: Add dummy texture that is shown as placeholder for NULL buffers 2017-05-21 16:52:23 +02:00
gstqtgl.h qmlgl: ensure Qt defines GLsync to fix compile on some platforms 2020-03-05 03:21:48 +00:00
gstqtglutility.cc qmlgl: qmake: fix building for android 2019-01-21 11:55:50 +02:00
gstqtglutility.h qt: implement qmlglsrc for qml view grab 2016-08-03 22:11:11 +10:00
gstqtsink.cc Request minimum buffer even if need_pool is FALSE 2017-09-06 14:19:37 -04:00
gstqtsink.h qt: Use a proxy object for access to the QML widget 2017-07-12 15:51:11 +10:00
gstqtsrc.cc qmlglsrc: fix vertical flip matrix 2019-10-25 22:09:20 +11:00
gstqtsrc.h qmlglsrc: some enhancements for qmlglsrc 2016-11-08 02:05:20 +11:00
meson.build qmlglsink: fix build on EGL platform without X11 headers 2019-12-04 22:38:49 +00:00
qtitem.cc qmlglsink: Expose itemInitialized as property 2017-09-14 15:12:12 +10:00
qtitem.h qmlglsink: Expose itemInitialized as property 2017-09-14 15:12:12 +10:00
qtplugin.pro qmlglsink: fix compilation with Qt >= 5.5 on Windows 2019-04-18 17:14:18 +02:00
qtwindow.cc qmlglsrc: read from the back buffer when use-default-fbo = TRUE 2019-10-25 22:09:20 +11:00
qtwindow.h qmlglsrc: use glBlitFramebuffer to copy texture for GLES3.0 2017-01-10 21:34:30 +11:00
README.md qmlgl: add README.md with information on building for non-linux platforms with qmake 2019-01-21 11:55:50 +02:00

Building for non-linux platforms

Compiling the gstqmlgl plugin for non-linux platforms is not so trivial. This file explains the steps that need to be followed for a successful build.

Step 1

Build GStreamer for the target platform using cerbero.

Step 2

Enter the cerbero shell:

./cerbero-uninstalled -c config/<target platform config>.cbc shell

Step 3

Export the following environment variables:

export PATH=/path/to/Qt/<version>/<platform>/bin:$PATH

if you are cross-compiling (ex. for android), also export:

export PKG_CONFIG_SYSROOT_DIR=/

Additionally, if you are building for android:

export ANDROID_NDK_ROOT=$ANDROID_NDK

Note: the ANDROID_NDK variable is set by the cerbero shell; if you are not using this shell, set it to the directory where you have installed the android NDK. Additionally, if you are not building through the cerbero shell, it is also important to have set PKG_CONFIG_LIBDIR to $GSTREAMER_ROOT/lib/pkgconfig.

Step 4

cd to the directory of the gstqmlgl plugin and run:

qmake .
make

Step 5

Copy the built plugin to your $GSTREAMER_ROOT/lib/gstreamer-1.0 or link to it directly if it is compiled statically