gstreamer/ext/qt
Raul Tambre b471f75ea0 QtGLVideoItem: Use QSharedPointer::data() for better compatibility
Older Qt versions didn't have QSharedPointer::get(), which is just a modern alias for QSharedPointer::data().

FAILED: ext/qt/libgstqmlgl.so.p/qtitem.cc.o
c++ -Iext/qt/libgstqmlgl.so.p -Iext/qt -I../ext/qt -I. -I.. -I../gst-libs -I/usr/include/glib-2.0 -I/usr/lib/aarch64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-1.0 -I/usr/include/orc-0.4 -I/usr/lib/aarch64-linux-gnu/gstreamer-1.0/include -I/usr/include/aarch64-linux-gnu/qt5/QtCore -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtGui -I/usr/include/aarch64-linux-gnu/qt5/QtQml -I/usr/include/aarch64-linux-gnu/qt5/QtNetwork -I/usr/include/aarch64-linux-gnu/qt5/QtQuick -I/usr/include/aarch64-linux-gnu/qt5/QtX11Extras -I/usr/include/libdrm -flto -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -std=c++11 -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -g -fdebug-prefix-map=/opt/good/src=. -Wformat -Werror=format-security -O3 -march=native -Wno-error -Wdate-time -fPIC -pthread -DHAVE_CONFIG_H -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ ext/qt/libgstqmlgl.so.p/qtitem.cc.o -MF ext/qt/libgstqmlgl.so.p/qtitem.cc.o.d -o ext/qt/libgstqmlgl.so.p/qtitem.cc.o -c ../ext/qt/qtitem.cc
In file included from /usr/include/gstreamer-1.0/gst/gst.h:55:0,
                 from /usr/include/gstreamer-1.0/gst/video/video.h:23,
                 from ../ext/qt/qtitem.cc:27:
../ext/qt/qtitem.cc: In destructor ‘virtual QtGLVideoItem::~QtGLVideoItem()’:
../ext/qt/qtitem.cc:138:86: error: ‘class QSharedPointer<QtGLVideoItemInterface>’ has no member named ‘get’
   GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get());
                                                                                      ^
/usr/include/gstreamer-1.0/gst/gstinfo.h:682:31: note: in definition of macro ‘GST_CAT_LEVEL_LOG’
         (GObject *) (object), __VA_ARGS__);    \
                               ^~~~~~~~~~~
../ext/qt/qtitem.cc:138:3: note: in expansion of macro ‘GST_INFO’
   GST_INFO ("%p Destroying QtGLVideoItem and invalidating the proxy %p", this, proxy.get());
   ^

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/673>
2020-07-15 12:38:50 +00:00
..
gstplugin.cc qt: add a qml overlay filter element 2020-03-18 11:22:39 +00:00
gstqsgtexture.cc qt: don't always activate/deactivate our GstGLContext 2020-03-18 11:22:39 +00: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 qt: Rework how we find the Qt QPA header 2020-06-28 00:16:53 +05:30
gstqtglutility.h qt: add a qml overlay filter element 2020-03-18 11:22:39 +00:00
gstqtoverlay.cc qtoverlay: add the root item as a property 2020-05-20 19:37:32 +00:00
gstqtoverlay.h qtoverlay: add the root item as a property 2020-05-20 19:37:32 +00:00
gstqtsink.cc qmlglsink: propagate the context up the the application 2020-03-18 11:22:39 +00:00
gstqtsink.h qt: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
gstqtsrc.cc qmlglsrc: fix vertical flip matrix 2019-10-25 22:09:20 +11:00
gstqtsrc.h qt: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
meson.build qt: Rework how we find the Qt QPA header 2020-06-28 00:16:53 +05:30
qtglrenderer.cc qt/gloverlay: fix using OpenGL after destroying Qml 2020-07-10 06:11:48 +00:00
qtglrenderer.h qt: perform surface creation in the main thread 2020-04-27 18:19:31 +10:00
qtitem.cc QtGLVideoItem: Use QSharedPointer::data() for better compatibility 2020-07-15 12:38:50 +00:00
qtitem.h qmlglsink: Expose itemInitialized as property 2017-09-14 15:12:12 +10:00
qtplugin.pro gstqmlgl: Link to opengl32.lib on MinGW 2020-03-20 06:25:28 +00: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