Skip to contentSkip to conversation

Add option to the gst1-plugins-bad package to enable/disable the qt plugin.

PATCH New Glenn Coombs 7 participants 17 messages Jul 21, 2017 – Apr 7, 2019

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Add option to the gst1-plugins-bad package to enable/disable the qt plugin.

I wanted to build the qmlglsink gstreamer component but it was not possible to build it because the gst1-plugins-bad package was previously hard-coded to run the configure script with the --disable-qt option. This patch adds an option to allow selection of either --enable-qt or --disable-qt. When enabled this allows users to build the qt plugin package.

---
 package/gstreamer1/gst1-plugins-bad/Config.in           | 5 +++++
 package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk | 9 +++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)
(quoted diff) +0 -0

b/package/gstreamer1/gst1-plugins-bad/Config.in
index 0c97899..22aacb3 100644

package/gstreamer1/gst1-plugins-bad/Config.in +5 -0
@@ -349,6 +349,11 @@ config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM
        help
          PNM plugin
 
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT
+       bool "qt"
+       help
+         Qt plugin
+
 config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE
        bool "rawparse"
        help
(quoted diff) +0 -0

b/package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk index 2e9e6f1..1caca13 100644

package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +7 -2
@@ -58,8 +58,7 @@ GST1_PLUGINS_BAD_CONF_OPTS += \
        --disable-schro \
        --disable-zbar \
        --disable-spandsp \
-       --disable-gtk3 \
-       --disable-qt
+       --disable-gtk3
 
 GST1_PLUGINS_BAD_DEPENDENCIES = gst1-plugins-base gstreamer1
 
@@ -403,6 +402,12 @@ else
 GST1_PLUGINS_BAD_CONF_OPTS += --disable-pnm
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt
+else
+GST1_PLUGINS_BAD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_RAWPARSE),y)
 GST1_PLUGINS_BAD_CONF_OPTS += --enable-rawparse
 else

--
2.7.4
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170721/53eaf8e9/attachment.html>

#1 lore raw

PATCH 1/1 Add option to the gst1-plugins-bad package to enable/disable the qt plugin.

Hello,

package/gstreamer1/gst1-plugins-bad/Config.in config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM · line 353

Quoted 2 lines · Glenn Coombs
package/gstreamer1/gst1-plugins-bad/Config.in +2 -0
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT
+       bool "qt"

Don't you need Qt to be built for this plugin to be compiled?

I would expect some "depends on" on Qt here.

Also, what about qt4 vs. qt5 ?

package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk else · line 406

Quoted 2 lines
package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +2 -0
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt

I would expect a GST1_PLUGINS_BAD_DEPENDENCIES += statement here, to make sure qt or qt5 get built before GStreamer.

Or is Qt not needed to built GStreamer Qt support ?

Also, we have to be careful, because qt5base itself can depend on gst1-plugins-base, so we need to be careful to not introduce a circular dependency.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 Add option to the gst1-plugins-bad package to enable/disable the qt plugin.

I think the code needs Qt5 rather than Qt4 as it uses the scene graph rendering model that only exists in Qt5. The code in the output/build/gst1-plugins-bad-1.12.1/ext/qt/ directory needs the following Qt header files in order to compile:

#include <QtGui/QOpenGLContext>
#include <QtGui/QOpenGLFunctions>
#include <QtQuick/QQuickItem>
#include <QtQuick/QSGTexture>

and ldd shows that libgstqmlgl.so is linked against these Qt libraries:

        libQt5Quick.so.5 => /lib/libQt5Quick.so.5 (0x768e5000)
        libQt5Gui.so.5 => /lib/libQt5Gui.so.5 (0x764b8000)
        libQt5Qml.so.5 => /lib/libQt5Qml.so.5 (0x7611d000)
        libQt5Network.so.5 => /lib/libQt5Network.so.5 (0x75f78000)
        libQt5Core.so.5 => /lib/libQt5Core.so.5 (0x75aa1000)

I've changed the gst1-plugins-bad/Config.in file like this:

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT
bool "qt"
depends on BR2_PACKAGE_QT5
help
Qt plugin

comment "qt plugin available if Qt5 enabled"
depends on !BR2_PACKAGE_QT5

which only allows the gst-plugins-bad/qt option to be selected if the Qt5 package has already been selected. I'm not sure how to handle the dependencies in the gst1-plugins-bad.mk file. I think you're right that if I add a dependency on Qt5 then it will introduce a circular dependency as the qt5base.mk file has this section:

ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)

    # gstreamer 0.10 support is broken in qt5multimedia
    ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
        QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0
        QT5BASE_DEPENDENCIES   += gst1-plugins-base
    else
        QT5BASE_CONFIGURE_OPTS += -no-gstreamer
    endif
endif

Any thoughts on how best to break that circular dependency ?

--
Glenn

Quoted 25 lines · Thomas Petazzoni

Hello,

package/gstreamer1/gst1-plugins-bad/Config.in config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_PNM · line 353

Quoted 2 lines · Glenn Coombs
package/gstreamer1/gst1-plugins-bad/Config.in +2 -0
+config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT
+       bool "qt"

Don't you need Qt to be built for this plugin to be compiled?

I would expect some "depends on" on Qt here.

Also, what about qt4 vs. qt5 ?

package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk else · line 406

Quoted 2 lines
package/gstreamer1/gst1-plugins-bad/gst1-plugins-bad.mk +2 -0
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT),y)
+GST1_PLUGINS_BAD_CONF_OPTS += --enable-qt

I would expect a GST1_PLUGINS_BAD_DEPENDENCIES += statement here, to make sure qt or qt5 get built before GStreamer.

Or is Qt not needed to built GStreamer Qt support ?

Also, we have to be careful, because qt5base itself can depend on gst1-plugins-base, so we need to be careful to not introduce a circular dependency.

Quoted 8 lines

Best regards,

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20170724/6c9baf44/attachment.html>

#3 lore raw

PATCH 1/1 Add option to the gst1-plugins-bad package to enable/disable the qt plugin.

Hello,

Quoted 4 lines · Glenn Coombs

I think the code needs Qt5 rather than Qt4 as it uses the scene graph rendering model that only exists in Qt5. The code in the output/build/gst1-plugins-bad-1.12.1/ext/qt/ directory needs the following Qt header files in order to compile:

Correct, it uses Qt5.

Quoted 5 lines

I've changed the gst1-plugins-bad/Config.in file like this:

config BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_QT
bool "qt"
depends on BR2_PACKAGE_QT5

It probably needs a bunch more options here:

depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE select BR2_PACKAGE_QT5BASE
select BR2_PACKAGE_QT5BASE_GUI select BR2_PACKAGE_QT5BASE_XML select BR2_PACKAGE_QT5DECLARATIVE_QUICK

Quoted 16 lines

which only allows the gst-plugins-bad/qt option to be selected if the Qt5 package has already been selected. I'm not sure how to handle the dependencies in the gst1-plugins-bad.mk file. I think you're right that if I add a dependency on Qt5 then it will introduce a circular dependency as the qt5base.mk file has this section:

ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)

    # gstreamer 0.10 support is broken in qt5multimedia
    ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
        QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0
        QT5BASE_DEPENDENCIES   += gst1-plugins-base
    else
        QT5BASE_CONFIGURE_OPTS += -no-gstreamer
    endif
endif
Quoted 1 line

Any thoughts on how best to break that circular dependency ?

In fact there is no circular dependency I believe:

qt5base (for Qt 5.6) or qt5multimedia (for Qt 5.9) depend on gst1-plugins-base. But the dependency you're adding is in gst1-plugins-bad.

Therefore, the following build order is perfectly fine, and has no circular dependency:

gstreamer1
gst1-plugins-base
qt5base / qt5multimedia / qt5declarative
gst1-plugins-bad

Could you cook a patch adding the appropriate logic in gst1-plugins-bad ?

Thanks a lot!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#4 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

In reply to Glenn Coombs

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
 package/gstreamer1/gst1-plugins-good/Config.in            | 10 ++++++++++
 package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk | 13 +++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +10 -0
index 3bb98a4..d55b445 100644
@@ -283,6 +283,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	
+comment "qmlgl (qt5) plugin depends on QT5 declarative with Quick module"
+	depends on !BR2_PACKAGE_QT5DECLARATIVE_QUICK
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index 6fa989d..bc8242d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL)$(BR2_PACKAGE_QT5BASE_XCB),yy)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 1 line
2.7.4
#5 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

This patch replaces this other one:
https://patchwork.ozlabs.org/patch/792000/

I guess that the previous patch should be closed. Among other things, that previous patch was for gst1-plugins-bad because qmlgl plugin was there when the patch was sent.

I've used --in-reply-to in git send-email because the documentation says that this way previous patch is automatically superseeded in the patchwork, but I'm not sure if this has happened.

El 23/07/18 a las 10:55, I?igo Huguet escribi?:

Quoted 62 lines

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
  package/gstreamer1/gst1-plugins-good/Config.in            | 10 ++++++++++
  package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk | 13 +++++++++++--
  2 files changed, 21 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +10 -0
index 3bb98a4..d55b445 100644
@@ -283,6 +283,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
  	help
  	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	
+comment "qmlgl (qt5) plugin depends on QT5 declarative with Quick module"
+	depends on !BR2_PACKAGE_QT5DECLARATIVE_QUICK
+
  config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
  	bool "v4l2"
  	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index 6fa989d..bc8242d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
  	--disable-osx_video \
  	--disable-aalib \
  	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
  # Options which require currently unpackaged libraries
  GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
  GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
  endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL)$(BR2_PACKAGE_QT5BASE_XCB),yy)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+
  ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
  GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
  else
#6 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

In reply to Iñigo Huguet

Hi I?igo,

Quoted 15 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
 package/gstreamer1/gst1-plugins-good/Config.in            | 10 ++++++++++
 package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk | 13 +++++++++++--
 2 files changed, 21 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +0 -0
index 3bb98a4..d55b445 100644

package/gstreamer1/gst1-plugins-good/Config.in config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4 · line 288

Quoted 6 lines
package/gstreamer1/gst1-plugins-good/Config.in +3 -0
@@ -283,6 +283,16 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5DECLARATIVE_QUICK

We try to use select as much as possible. Selecting qt5 itself is a bit over
the top, but declarative and quick could be selected. So something like

depends on BR2_PACKAGE_QT5
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST #
qt5declarative-quick
select BR2_PACKAGE_QT5DECLARATIVE
select BR2_PACKAGE_QT5DECLARATIVE_QUICK

package/gstreamer1/gst1-plugins-good/Config.in config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4 · line 294

Quoted 6 lines
package/gstreamer1/gst1-plugins-good/Config.in +6 -0
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	
+comment "qmlgl (qt5) plugin depends on QT5 declarative with Quick module"
+	depends on !BR2_PACKAGE_QT5DECLARATIVE_QUICK

No comment would be needed for the qt5 (obvious that you need qt5 for qt5
support in GStreamer), no comment would be needed for JSCORE_AVAILABLE (it's an arch dependency), but a comment is needed for GL_AVAILABLE. So:

comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
depends on BR2_PACKAGE_QT5
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST

Quoted 20 lines
package/gstreamer1/gst1-plugins-good/Config.in +1 -0
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +1 -2
index 6fa989d..bc8242d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4

package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk else · line 337

Quoted 10 lines
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +8 -0
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL)$(BR2_PACKAGE_QT5BASE_XCB),yy)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras

Better put this inside the condition above, so you don't need the ugly yy.

Regards,
Arnout

Quoted 6 lines
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +2 -0
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#7 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
 package/gstreamer1/gst1-plugins-good/Config.in           | 16 ++++++++++++++++
 .../gstreamer1/gst1-plugins-good/gst1-plugins-good.mk    | 13 +++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +16 -0
index afb9a41..62ac07b 100644
@@ -283,6 +283,22 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative-quick
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	
+comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index c1ed039..ef28f2d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 1 line
2.7.4
#8 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

Hello,

Peter (Seiderer), you are the de-facto GStreamer / Qt5 person, could you please review/test/ack the below patch ?

Thanks a lot :-)

Thomas

Quoted 68 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
 package/gstreamer1/gst1-plugins-good/Config.in           | 16 ++++++++++++++++
 .../gstreamer1/gst1-plugins-good/gst1-plugins-good.mk    | 13 +++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +16 -0
index afb9a41..62ac07b 100644
@@ -283,6 +283,22 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative-quick
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	
+comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index c1ed039..ef28f2d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com
#9 lore raw

PATCH 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

In reply to Iñigo Huguet

Hello I?igo,

thanks for the updated patch, most of the points from the first version reviews ([1]) seem to be fixed, but...

Quoted 16 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
 package/gstreamer1/gst1-plugins-good/Config.in           | 16 ++++++++++++++++
 .../gstreamer1/gst1-plugins-good/gst1-plugins-good.mk    | 13 +++++++++++--
 2 files changed, 27 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +0 -0
index afb9a41..62ac07b 100644
@@ -283,6 +283,22 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help

package/gstreamer1/gst1-plugins-good/Config.in config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4 · line 293

Quoted 10 lines
package/gstreamer1/gst1-plugins-good/Config.in +8 -0
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative-quick
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB

Needs to select BR2_PACKAGE_QT5BASE_WIDGETS to enable the host uic command (otherwise gst1-plugins-good configure disables qt support with the message 'One of the required qt build programs was not found')...

Next failure was because the search for qplatformnativeinterface.h failed, fixed by the following patch:

	$ cat package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch 
--- gst1-plugins-good-1.14.2/configure_orig	2018-08-15 19:42:48.065311007 +0200
+++ gst1-plugins-good-1.14.2/configure	2018-08-15 19:42:58.665528543 +0200
@@ -35924,7 +35924,7 @@
       else
         HAVE_QT="yes"
         HAVE_QT_WINDOWING="no"
-        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
+        QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
         QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
         if test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"; then :

According to [2] the '--define-prefix' option is introduced with pkgconf-1.2.0 (buildroot is still using 0.9.12)...

The last failure ('Could not find any Qt Windowing integration') is fixed by selecting BR2_PACKAGE_GST1_PLUGINS_BASE_LIB_OPENGL...

package/gstreamer1/gst1-plugins-good/Config.in config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4 · line 296

Quoted 3 lines
package/gstreamer1/gst1-plugins-good/Config.in +3 -0
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+	

Spurious tab in the line above (checkout check-package to avoid this one [3])...

Patch iteration version and changelog (see [4]) would be nice for the next patch iteration ;-)

Regards,
Peter

[1] https://patchwork.ozlabs.org/patch/792000/
[2] https://github.com/pkgconf/pkgconf/blob/master/NEWS
[3] http://nightly.buildroot.org/manual.html#_tips_and_tric
[4] http://nightly.buildroot.org/manual.html#submitting-patches

Quoted 39 lines
package/gstreamer1/gst1-plugins-good/Config.in +5 -0
+comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index c1ed039..ef28f2d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
#10 lore raw

PATCH v3 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
Changes v2 -> v3:
- select qt5 widgets to enable host uic command (suggested by Peter Seiderer)
- added patch to fix QT QPA detection (provided by Peter Seiderer)
- fixed file formatting

Changes v1 -> v2:
- select packages instead of depending (suggested by Arnout Vandecappelle)
- nested ifeq in makefile (suggested by Arnout Vandecappelle)

---
 .../0001-configure-fix-qt-qpa-detection.patch           | 14 ++++++++++++++
 package/gstreamer1/gst1-plugins-good/Config.in          | 17 +++++++++++++++++
 .../gstreamer1/gst1-plugins-good/gst1-plugins-good.mk   | 13 +++++++++++--
 3 files changed, 42 insertions(+), 2 deletions(-)
 create mode 100644 package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch
package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch new file +14 -0
new file mode 100644
index 0000000..d755354
@@ -0,0 +1,14 @@
+configure: fix QT QPA detection
+
+Signed-off-by: I?igo Huguet <[email protected]>
+
+--- gst1-plugins-good-1.14.2/configure_orig	2018-08-15 19:42:48.065311007 +0200
++++ gst1-plugins-good-1.14.2/configure	2018-08-15 19:42:58.665528543 +0200
+@@ -35924,7 +35924,7 @@
+       else
+         HAVE_QT="yes"
+         HAVE_QT_WINDOWING="no"
+-        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
++        QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
+         QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
+         if test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"; then :
package/gstreamer1/gst1-plugins-good/Config.in +17 -0
index afb9a41..30a4876 100644
@@ -283,6 +283,23 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative-quick
+	select BR2_PACKAGE_QT5BASE_WIDGETS
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+
+comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index c1ed039..ef28f2d 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -328,6 +327,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 1 line
2.7.4
#11 lore raw

PATCH v3 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

Quoted 6 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

Hi,

I actually prepare my system to use this gstreamer module now. Your change looks good to me in general and I built my system using it now. So thanks a lot for this!

I'm on an i.MX6 system and need the following patches against gstreamer plugins applied _additionally_. But IMO we should apply your current change as-is, and (if applicable) the following separately:

gst1-plugins-good:
https://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=319171b162bac6bd56c342e0dd4bd3968a59392f
this is just not yet part of gstreamer 1.14.2. As soon as included, this could be removed of course.

gst1-plugins-base:
The following chage removes the build-dependency on udev (I don't use udev). In this case the device (to be found by udev) can be defined using the GST_GL_GBM_DRM_DEVICE env.variable (but the default should mostly be fine).

--- a/gst-libs/gst/gl/gbm/gstgl_gbm_utils.c

+++ b/gst-libs/gst/gl/gbm/gstgl_gbm_utils.c

@@ -20,7 +20,9 @@

#include <unistd.h>

#include <fcntl.h>

+#ifdef HAVE_GUDEV

#include <gudev/gudev.h>

+#endif

#include "gstgl_gbm_utils.h"

GST_DEBUG_CATEGORY_EXTERN (gst_gl_gbm_debug);

@@ -440,6 +442,7 @@ gst_gl_gbm_find_and_open_drm_node (void)

/* In here we use GUDev to try to autodetect the GPU */

   int drm_fd = -1;

+#ifdef HAVE_GUDEV

   GUdevClient *gudev_client = NULL;

   GUdevEnumerator *gudev_enum = NULL;

   GList *devlist = NULL;

@@ -526,4 +529,7 @@ cleanup:

   }

goto done;

+#else

+ return drm_fd;

+#endif

}

m4/gst-gl.m4 +0 -0

index 1e9724094..bd6d173f9 100644

--- a/m4/gst-gl.m4

+++ b/m4/gst-gl.m4

@@ -176,7 +176,7 @@ case $host in

         PKG_CHECK_MODULES(DRM, libdrm >= 2.4.55, HAVE_DRM=yes,

HAVE_DRM=no)
AC_SUBST(DRM_CFLAGS)

AC_SUBST(DRM_LIBS)

- if test "x$HAVE_DRM" = "xyes" -a "x$HAVE_GUDEV" = "xyes"; then

+ if test "x$HAVE_DRM" = "xyes"; then

PKG_CHECK_MODULES(GBM, gbm, HAVE_GBM_EGL=yes,
HAVE_GBM_EGL=no)
AC_SUBST(GBM_CFLAGS)

AC_SUBST(GBM_LIBS)

Also, while playing with it, I see the following problem I want to point out just in case you have any idea or hint about it; this is a special case and should not prevent us from enabling and using it here of course :)
https://bugreports.qt.io/browse/QTBUG-65993

thanks

martin

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3616 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20180903/721322cf/attachment.bin>

#12 lore raw

PATCH v3 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

In reply to Iñigo Huguet

Hello I?igo,

Quoted 5 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

Thanks for this new iteration!

Quoted 8 lines
package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch new file +2 -0
new file mode 100644
index 0000000..d755354
@@ -0,0 +1,14 @@
+configure: fix QT QPA detection
+

package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch line 12

Quoted 10 lines
package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch new file +10 -0
+Signed-off-by: I?igo Huguet <[email protected]>
+
+--- gst1-plugins-good-1.14.2/configure_orig	2018-08-15 19:42:48.065311007 +0200
++++ gst1-plugins-good-1.14.2/configure	2018-08-15 19:42:58.665528543 +0200
+@@ -35924,7 +35924,7 @@
+       else
+         HAVE_QT="yes"
+         HAVE_QT_WINDOWING="no"
+-        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
++        QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"

I think patching GStreamer is not the right approach here. Could you instead apply http://patchwork.ozlabs.org/patch/967653/, which updates our pkgconf package to use a newer version that supports the --define-prefix option ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#13 lore raw

PATCH v3 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

Hi Thomas.

I've tried to build gst1-plugins-good after applying your patch and removing the file 0001-configure-fix-qt-qpa-detection.patch. It builds with QT plugin enabled, so your solution works.

I'm going to prepare a new iteration of my patch, remember to commit yours one first or it won't work.

Thanks

I?igo

El 08/09/18 a las 22:07, Thomas Petazzoni escribi?:

Quoted 36 lines

Hello I?igo,

Quoted 5 lines · I?igo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

Thanks for this new iteration!

Quoted 8 lines
package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch new file +2 -0
new file mode 100644
index 0000000..d755354
@@ -0,0 +1,14 @@
+configure: fix QT QPA detection
+

package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch line 12

Quoted 10 lines
package/gstreamer1/gst1-plugins-good/0001-configure-fix-qt-qpa-detection.patch new file +10 -0
+Signed-off-by: I?igo Huguet <[email protected]>
+
+--- gst1-plugins-good-1.14.2/configure_orig	2018-08-15 19:42:48.065311007 +0200
++++ gst1-plugins-good-1.14.2/configure	2018-08-15 19:42:58.665528543 +0200
+@@ -35924,7 +35924,7 @@
+       else
+         HAVE_QT="yes"
+         HAVE_QT_WINDOWING="no"
+-        QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
++        QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"

I think patching GStreamer is not the right approach here. Could you instead apply http://patchwork.ozlabs.org/patch/967653/, which updates our pkgconf package to use a newer version that supports the --define-prefix option ?

Thanks!

Thomas

#14 lore raw

PATCH v3 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

Hello,

Quoted 3 lines · I?igo Huguet

I've tried to build gst1-plugins-good after applying your patch and removing the file 0001-configure-fix-qt-qpa-detection.patch. It builds with QT plugin enabled, so your solution works.

Thanks a lot for testing this.

Quoted 2 lines

I'm going to prepare a new iteration of my patch, remember to commit yours one first or it won't work.

When sending the patch, please indicate below the "---" sign that is under your Signed-off-by line that there is a dependency on the pkgconf bump.

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
#15 lore raw

PATCH v4 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

In reply to Iñigo Huguet

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
Dependency: this patch depends on the pkgconf bump to version 1.5.3

Changes v3 -> v4:
- remove patch fo fix QT QPA detection. Instead pkgconf package must be bumped to a newer version to support --define-prefix option (suggested by Thomas Petazzoni)

Changes v2 -> v3:
- select qt5 widgets to enable host uic command (suggested by Peter Seiderer)
- added patch to fix QT QPA detection (provided by Peter Seiderer)
- fixed file formatting

Changes v1 -> v2:
- select packages instead of depending (suggested by Arnout Vandecappelle)
- nested ifeq in makefile (suggested by Arnout Vandecappelle)

---
 package/gstreamer1/gst1-plugins-good/Config.in          | 17 +++++++++++++++++
 .../gstreamer1/gst1-plugins-good/gst1-plugins-good.mk   | 13 +++++++++++--
 2 files changed, 28 insertions(+), 2 deletions(-)
package/gstreamer1/gst1-plugins-good/Config.in +17 -0
index afb9a41..30a4876 100644
@@ -283,6 +283,23 @@ config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_OSS4
 	help
 	  Open Sound System (OSS) version 4 support for GStreamer
 
+config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL
+	bool "qmlgl (qt5)"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE # qt5declarative
+	depends on BR2_PACKAGE_QT5_GL_AVAILABLE || BR2_PACKAGE_QT5_VERSION_LATEST # qt5declarative-quick
+	select BR2_PACKAGE_QT5BASE_WIDGETS
+	select BR2_PACKAGE_QT5DECLARATIVE
+	select BR2_PACKAGE_QT5DECLARATIVE_QUICK
+	select BR2_PACKAGE_QT5X11EXTRAS if BR2_PACKAGE_QT5BASE_XCB
+	help
+	  QT5 plugin which includes elements qmlglsrc and qmlglsink
+
+comment "qmlgl (qt5) plugin needs an OpenGL-capable Qt5 backend"
+	depends on BR2_PACKAGE_QT5
+	depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
+	depends on !BR2_PACKAGE_QT5_GL_AVAILABLE && !BR2_PACKAGE_QT5_VERSION_LATEST
+
 config BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2
 	bool "v4l2"
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_0 # multi planar api
package/gstreamer1/gst1-plugins-good/gst1-plugins-good.mk +11 -2
index 21a7668..4749d9a 100644
@@ -20,8 +20,7 @@ GST1_PLUGINS_GOOD_CONF_OPTS = \
 	--disable-osx_video \
 	--disable-aalib \
 	--disable-aalibtest \
-	--disable-libcaca \
-	--disable-qt
+	--disable-libcaca
 
 # Options which require currently unpackaged libraries
 GST1_PLUGINS_GOOD_CONF_OPTS += \
@@ -334,6 +333,16 @@ else
 GST1_PLUGINS_GOOD_CONF_OPTS += --disable-oss4
 endif
 
+ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_QMLGL),y)
+GST1_PLUGINS_GOOD_CONF_OPTS += --enable-qt
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5declarative
+ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
+GST1_PLUGINS_GOOD_DEPENDENCIES += qt5x11extras
+endif
+else
+GST1_PLUGINS_GOOD_CONF_OPTS += --disable-qt
+endif
+
 ifeq ($(BR2_PACKAGE_GST1_PLUGINS_GOOD_PLUGIN_V4L2),y)
 GST1_PLUGINS_GOOD_CONF_OPTS += --enable-gst_v4l2
 else
Signature · 1 line
2.7.4
#16 lore raw

PATCH v4 1/1 gst1-plugins-good: add option for qmlgl plugin (qt5 plugin)

Quoted 8 lines · On Tue, 18 Sep 2018 12:58:27 +0200 I?igo Huguet <[email protected]>…

gst1-plugins-good is built with --disable-qt option, so qmlgl plugin is disabled. Added option to enable it, allowing to use elements qmlglsrc and qmlglsink.

---
Dependency: this patch depends on the pkgconf bump to version 1.5.3

Applied to master, thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com