gstreamer/ext/qt
VaL Doroshchuk 36b794f9ff qmloverlay: Use first found GstGLVideoItem as widget property
GstGLVideoItem is required to render input video in the overlay's qml.
And currently qmlgloverlay requires to set this GstGLVideoItem to its widget property.

Instead of fetching GstGLVideoItem from the overlay's root object (root-item prop),
and setting it back as a widget (widget prop),
proposing to use found GstGLVideoItem in the current object hierarchy (passed in qml-scene) by default.

Also useful in Python, which solves the issue when casting gpointer <=> QQuickItem* is required.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/919>
2021-04-21 08:26:52 +00:00
..
gstplugin.cc qt: allow per feature registration 2021-03-29 12:45:22 +02:00
gstqsgtexture.cc gst: don't use volatile to mean atomic 2021-03-18 19:52:53 +11:00
gstqsgtexture.h qmlglsink: Keep old buffers around a bit longer if they were bound by QML 2020-11-11 11:37:27 +00:00
gstqtelement.cc qt: hotfix: allow per feature registration 2021-03-30 10:09:00 +02:00
gstqtelements.h qt: hotfix: allow per feature registration 2021-03-30 10:09:00 +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 gst: don't use volatile to mean atomic 2021-03-18 19:52:53 +11:00
gstqtglutility.h qt: fix build warning with clang and c-linkage of user defined type 2021-03-31 10:28:11 +11:00
gstqtoverlay.cc qmloverlay: Use first found GstGLVideoItem as widget property 2021-04-21 08:26:52 +00:00
gstqtoverlay.h gstqtoverlay: Add initialization and finalization to qml-scene prop 2021-03-31 12:05:14 +00:00
gstqtsink.cc qt: hotfix: allow per feature registration 2021-03-30 10:09:00 +02:00
gstqtsink.h qt: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
gstqtsrc.cc qt: hotfix: allow per feature registration 2021-03-30 10:09:00 +02:00
gstqtsrc.h qt: Use G_DECLARE_FINAL_TYPE 2020-03-16 09:20:07 +01:00
meson.build qt: allow per feature registration 2021-03-29 12:45:22 +02:00
qtglrenderer.cc gst: don't use volatile to mean atomic 2021-03-18 19:52:53 +11:00
qtglrenderer.h qt: perform surface creation in the main thread 2020-04-27 18:19:31 +10:00
qtitem.cc qmlglsink: allow to set force-aspect-ratio property 2021-04-19 17:46:41 +00:00
qtitem.h qmlglsink: allow to set force-aspect-ratio property 2021-04-19 17:46:41 +00:00
qtplugin.pro qt: allow per feature registration 2021-03-29 12:45:22 +02:00
qtwindow.cc gst: don't use volatile to mean atomic 2021-03-18 19:52:53 +11:00
qtwindow.h qmlglsrc: use glBlitFramebuffer to copy texture for GLES3.0 2017-01-10 21:34:30 +11:00
README.md gstqmlgl: build on Windows with qmake without pkgconfig; update instructions on building for Windows 2020-08-24 23:31:47 +00: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

Building for Windows using pre-built gstreamer development package and Qt Creator

Step 1

Open qtplugin.pro in Qt Creator as project and configure it as usual.

Step 2

Open qtplugin.pro in the editor and make sure GSTREAMER_PATH variable in qmlplugin.pro is set to the path of your gstreamer SDK installation. This directory should contain subdirectories bin, include, lib etc. Pay attention to the correct choice of x86 or x86_64 platform.

Step 3

Build the project as usual.

Step 3

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

Building for Windows using pre-built gstreamer development package and Qt on MinGW command line

Step 1

Launch Qt developer command line from the Start menu.

Step 2

cd to the directory of the gstqmlgl plugin and make sure GSTREAMER_PATH variable in qmlplugin.pro is set to the path of your gstreamer SDK installation. This directory should contain subdirectories bin, include, lib etc. Pay attention to the correct choice of x86 or x86_64 platform.

Step 3

Run the following commands in the gstqmlgl plugin directory:

qmake 
mingw32-make

Step 4

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