qt5base: add optional gstreamer1 support
PATCH 1/2 qt5base: add optional gstreamer1 support
Indirectly fixes:
http://autobuild.buildroot.net/results/773/773d9996bd3da283eed6b75083b8bab6469d0423/
http://autobuild.buildroot.net/results/069/069f564fde821b55e710fbe93fe30a5cf11a6da5/
http://autobuild.buildroot.net/results/456/456d380f8b4478245e89f711c33fe0c2d23aaa3a/
http://autobuild.buildroot.net/results/7c8/7c8ebfc93a5b11e40251495715d742520b3b8291/
And many more, as qt5multimedia needs qt5base to be built with gstreamer1 support as well.
While qt5 has some gstreamer 0.10 support, it doesn't seem to be used much any more and E.G. the 0.10 fallback code in qt5multimedia is broken so only enable it for the 1.x series.
--- package/qt5/qt5base/qt5base.mk | 8 ++++++++ 1 file changed, 8 insertions(+)
package/qt5/qt5base/qt5base.mk +8 -0
@@ -147,6 +147,14 @@ QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu) QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples +# 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 + # Build the list of libraries to be installed on the target QT5BASE_INSTALL_LIBS_y += Qt5Core QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XCB) += Qt5XcbQpa
Signature · 1 line
2.1.4
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Korsgaard <[email protected]> writes:
Indirectly fixes:
http://autobuild.buildroot.net/results/773/773d9996bd3da283eed6b75083b8bab6469d0423/
http://autobuild.buildroot.net/results/069/069f564fde821b55e710fbe93fe30a5cf11a6da5/
http://autobuild.buildroot.net/results/456/456d380f8b4478245e89f711c33fe0c2d23aaa3a/
http://autobuild.buildroot.net/results/7c8/7c8ebfc93a5b11e40251495715d742520b3b8291/
Quoted 8 lines
And many more, as qt5multimedia needs qt5base to be built with gstreamer1 support as well.
While qt5 has some gstreamer 0.10 support, it doesn't seem to be used much any more and E.G. the 0.10 fallback code in qt5multimedia is broken so only enable it for the 1.x series.
Signed-off-by Peter Korsgaard <[email protected]>
Committed, thanks.
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/2 qt5base: add optional gstreamer1 support
In reply to Peter KorsgaardPeter,
Quoted 6 lines · Peter Korsgaard
Indirectly fixes:
http://autobuild.buildroot.net/results/773/773d9996bd3da283eed6b75083b8bab6469d0423/
http://autobuild.buildroot.net/results/069/069f564fde821b55e710fbe93fe30a5cf11a6da5/
http://autobuild.buildroot.net/results/456/456d380f8b4478245e89f711c33fe0c2d23aaa3a/
http://autobuild.buildroot.net/results/7c8/7c8ebfc93a5b11e40251495715d742520b3b8291/
Quoted 8 lines
And many more, as qt5multimedia needs qt5base to be built with gstreamer1 support as well.
While qt5 has some gstreamer 0.10 support, it doesn't seem to be used much any more and E.G. the 0.10 fallback code in qt5multimedia is broken so only enable it for the 1.x series.
Signed-off-by Peter Korsgaard <[email protected]>
Please also look at http://patchwork.ozlabs.org/patch/504627/ and
http://patchwork.ozlabs.org/patch/504628/ which have some overlap.
Thanks,
Thomas
Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons Embedded Linux, Kernel and Android engineering http://free-electrons.com
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
Peter,
Quoted 9 lines · Peter Korsgaard
Indirectly fixes:
http://autobuild.buildroot.net/results/773/773d9996bd3da283eed6b75083b8bab6469d0423/
http://autobuild.buildroot.net/results/069/069f564fde821b55e710fbe93fe30a5cf11a6da5/
http://autobuild.buildroot.net/results/456/456d380f8b4478245e89f711c33fe0c2d23aaa3a/
http://autobuild.buildroot.net/results/7c8/7c8ebfc93a5b11e40251495715d742520b3b8291/And many more, as qt5multimedia needs qt5base to be built with gstreamer1 support as well.
Quoted 8 lines
Quoted 5 lines
While qt5 has some gstreamer 0.10 support, it doesn't seem to be used much any more and E.G. the 0.10 fallback code in qt5multimedia is broken so only enable it for the 1.x series.
Signed-off-by Peter Korsgaard <[email protected]>Please also look at http://patchwork.ozlabs.org/patch/504627/ and
http://patchwork.ozlabs.org/patch/504628/ which have some overlap.
The equivalent of 504628 is already in the tree since:
commit a0f3a2b88d27df6f3e8e3d45bd8a0506a3d09455
Author: Beno?t Th?baudeau <[email protected]> Date: Thu Aug 27 18:34:14 2015 +0200
So I've marked is as superseeded.
And 504627 looks pretty much like my patch except that it adds gstreamer 0.10 support which I think we shouldn't do (as qt5multimedia doesn't build with it).
Once my patch is a applied I'll mark 504627 as superseeded. I wasn't able to reproduce the pkg-config issue you mentioned.
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/2 qt5base: add optional gstreamer1 support
Peter,
Le 21/10/2015 13:48, Peter Korsgaard a ?crit :
Quoted 25 lines
Quoted 13 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Thomas" == Thomas Petazzoni <[email protected]> writes:
Peter,
Quoted 9 lines · Peter Korsgaard
Indirectly fixes:
http://autobuild.buildroot.net/results/773/773d9996bd3da283eed6b75083b8bab6469d0423/
http://autobuild.buildroot.net/results/069/069f564fde821b55e710fbe93fe30a5cf11a6da5/
http://autobuild.buildroot.net/results/456/456d380f8b4478245e89f711c33fe0c2d23aaa3a/
http://autobuild.buildroot.net/results/7c8/7c8ebfc93a5b11e40251495715d742520b3b8291/And many more, as qt5multimedia needs qt5base to be built with gstreamer1 support as well.
Quoted 8 lines
Quoted 5 lines
While qt5 has some gstreamer 0.10 support, it doesn't seem to be used much any more and E.G. the 0.10 fallback code in qt5multimedia is broken so only enable it for the 1.x series.
Signed-off-by Peter Korsgaard <[email protected]>Please also look at http://patchwork.ozlabs.org/patch/504627/ and
http://patchwork.ozlabs.org/patch/504628/ which have some overlap.The equivalent of 504628 is already in the tree since:
commit
a0f3a2b88d27df6f3e8e3d45bd8a0506a3d09455
Quoted 8 lines
Author: Beno?t Th?baudeau <[email protected]> Date: Thu Aug 27 18:34:14 2015 +0200So I've marked is as superseeded.
And 504627 looks pretty much like my patch except that it adds gstreamer 0.10 support which I think we shouldn't do (as qt5multimedia doesn't build with it).
Qt-5.5.0 announce support[1] for both gstreamer-0.10 & gstreamer-1.0. Also note that gstreamer-0.10 is still the Qt default version in case both are present.
Quoted 3 lines
Once my patch is a applied I'll mark 504627 as superseeded. I wasn't able to reproduce the pkg-config issue you mentioned.
You probably missed that qt5base use host pkg-config to detect gstreamer version. As autobuild chroot environment have neither of them they both fail at qt5multimedia install time.
I already report a bug[2] but I was not able to fix it (running out of time). Will Wagner proposed a solution[3] to that issue but he did not spin it into Buildroot and Qt patches yet.
[1] https://wiki.qt.io/New_Features_in_Qt_5.5
[2] https://bugreports.qt.io/browse/QTBUG-48046
[3] https://patchwork.ozlabs.org/patch/504627/
Regards,
Julien Corjon
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Julien" == Julien CORJON <[email protected]> writes:
Hi,
Quoted 9 lines
Quoted 5 lines
So I've marked is as superseeded.
And 504627 looks pretty much like my patch except that it adds gstreamer 0.10 support which I think we shouldn't do (as qt5multimedia doesn't build with it).
Qt-5.5.0 announce support[1] for both gstreamer-0.10 & gstreamer-1.0. Also note that gstreamer-0.10 is still the Qt default version in case both are present.
Yes, but E.G. the gstreamer 0.10 support in qt5multimedia doesn't build, whereas the 1.x support does, and we prefer 1.x over 0.10 elsewhere in Buildroot.
Quoted 7 lines
Quoted 3 lines
Once my patch is a applied I'll mark 504627 as superseeded. I wasn't able to reproduce the pkg-config issue you mentioned.
You probably missed that qt5base use host pkg-config to detect gstreamer version. As autobuild chroot environment have neither of them they both fail at qt5multimedia install time.
Ok, but gstreamer1 pulls in host-pkgconf, so it should be available when qt5base runs the configure step, right?
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 9 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Julien" == Julien CORJON <[email protected]> writes:
Hi,
Quoted 5 lines
Quoted 5 lines
So I've marked is as superseeded.
And 504627 looks pretty much like my patch except that it adds gstreamer 0.10 support which I think we shouldn't do (as qt5multimedia doesn't build with it).
Quoted 7 lines
Quoted 3 lines
Qt-5.5.0 announce support[1] for both gstreamer-0.10 & gstreamer-1.0. Also note that gstreamer-0.10 is still the Qt default version in case both are present.
Yes, but E.G. the gstreamer 0.10 support in qt5multimedia doesn't build, whereas the 1.x support does, and we prefer 1.x over 0.10 elsewhere in Buildroot.
This is working fine for me. I have 0.10 building and working on a board.
Quoted 11 lines
Quoted 8 lines
Quoted 4 lines
Once my patch is a applied I'll mark 504627 as superseeded. I wasn't able to reproduce the pkg-config issue you mentioned.
You probably missed that qt5base use host pkg-config to detect gstreamer version. As autobuild chroot environment have neither of them they both fail at qt5multimedia install time.
Ok, but gstreamer1 pulls in host-pkgconf, so it should be available when qt5base runs the configure step, right?
host-pkgconfig is built already, but Qt5.5 just seems to be broken and ignores the passed in path to pkgconf. I've just not had the time to put together a proper patch and try to get it upstream, but it is still on my list.
Signature · 5 lines
------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7371 2032 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Will" == Will Wagner <[email protected]> writes:
Hi,
Quoted 7 lines · Peter Korsgaard
Quoted 4 lines
Yes, but E.G. the gstreamer 0.10 support in qt5multimedia doesn't build, whereas the 1.x support does, and we prefer 1.x over 0.10 elsewhere in Buildroot.
This is working fine for me. I have 0.10 building and working on a board.
So you don't see these compile errors?
https://patchwork.ozlabs.org/patch/533653/
For one, I see src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp calling gst_video_connector_get_type that isn't defined anywhere.
Quoted 7 lines
Quoted 2 lines
Ok, but gstreamer1 pulls in host-pkgconf, so it should be available when qt5base runs the configure step, right?
host-pkgconfig is built already, but Qt5.5 just seems to be broken and ignores the passed in path to pkgconf. I've just not had the time to put together a proper patch and try to get it upstream, but it is still on my list.
That can presumably be fixed by just ensuring that HOST_DIR/usr/bin is in the path (using TARGET_MAKE_ENV / TARGET_CONFIGURE_OPTS)?
Signature · 2 lines
Venlig hilsen, Peter Korsgaard
PATCH 1/2 qt5base: add optional gstreamer1 support
Quoted 11 lines · Peter Korsgaard
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Will" == Will Wagner <[email protected]> writes:
Hi,
Quoted 7 lines · Peter Korsgaard
Quoted 4 lines
Yes, but E.G. the gstreamer 0.10 support in qt5multimedia doesn't build, whereas the 1.x support does, and we prefer 1.x over 0.10 elsewhere in Buildroot.
This is working fine for me. I have 0.10 building and working on a board.
Quoted 7 lines
So you don't see these compile errors?
https://patchwork.ozlabs.org/patch/533653/
For one, I see src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp calling
gst_video_connector_get_typethat isn't defined anywhere.
No I don't see that. I'll take a look and see what is happening.
Quoted 4 lines
Quoted 3 lines
Quoted 3 lines
Ok, but gstreamer1 pulls in host-pkgconf, so it should be available when qt5base runs the configure step, right?
Quoted 8 lines
Quoted 4 lines
host-pkgconfig is built already, but Qt5.5 just seems to be broken and ignores the passed in path to pkgconf. I've just not had the time to put together a proper patch and try to get it upstream, but it is still on my list.
That can presumably be fixed by just ensuring that HOST_DIR/usr/bin is in the path (using
TARGET_MAKE_ENV/TARGET_CONFIGURE_OPTS)?
I hadn't thought of that, but yes presumably that would work.
Regards
Will
Signature · 5 lines
------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7371 2032 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------
PATCH 2/2 qt5multimedia: drop broken gstreamer 0.10 support
In reply to Peter KorsgaardThe gstreamer 0.10 support code seems to have bitrotten as the build fails with undefined references to various functions:
.obj/qgstreameraudiodecodersession.o: In function `QGstreamerAudioDecoderSession::read()':
qgstreameraudiodecodersession.cpp:(.text+0x13a0): undefined reference to `QGstUtils::audioFormatForBuffer(_GstBuffer*)'
collect2: error: ld returned 1 exit status
Makefile:111: recipe for target '../../../../plugins/mediaservice/libgstaudiodecoder.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstaudiodecoder.so] Error 1
Makefile:45: recipe for target 'sub-audiodecoder-make_first' failed
make[5]: *** [sub-audiodecoder-make_first] Error 2
make[5]: *** Waiting for unfinished jobs.....obj/qgstreamercapturesession.o: In function `QGstreamerCaptureSession::probeBuffer(_GstBuffer*) [clone .part.30]':
qgstreamercapturesession.cpp:(.text+0x3fc8): undefined reference to `QGstUtils::bufferToImage(_GstBuffer*)'
collect2: error: ld returned 1 exit status
Makefile:153: recipe for target '../../../../plugins/mediaservice/libgstmediacapture.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediacapture.so] Error 1
Makefile:95: recipe for target 'sub-mediacapture-make_first' failed
make[5]: *** [sub-mediacapture-make_first] Error 2.obj/qgstreamerplayersession.o: In function `QGstreamerPlayerSession::QGstreamerPlayerSession(QObject*)':
qgstreamerplayersession.cpp:(.text+0xecc): undefined reference to gst_video_connector_get_type' .obj/qgstreamerplayersession.o: In function QGstreamerPlayerSession::processBusMessage(QGstreamerMessage const&)':
qgstreamerplayersession.cpp:(.text+0x5b4c): undefined reference to `QGstUtils::gstTagListToMap(_GstStructure const*)'
collect2: error: ld returned 1 exit status
Makefile:129: recipe for target '../../../../plugins/mediaservice/libgstmediaplayer.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediaplayer.so] Error 1
Makefile:70: recipe for target 'sub-mediaplayer-make_first' failed
make[5]: *** [sub-mediaplayer-make_first] Error 2
--- package/qt5/qt5multimedia/qt5multimedia.mk | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)
package/qt5/qt5multimedia/qt5multimedia.mk +1 -4
@@ -18,9 +18,6 @@ QT5MULTIMEDIA_LICENSE = Commercial license QT5MULTIMEDIA_REDISTRIBUTE = NO endif -ifeq ($(BR2_PACKAGE_GST_PLUGINS_BASE),y) -QT5MULTIMEDIA_DEPENDENCIES += gst-plugins-base -endif ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) QT5MULTIMEDIA_DEPENDENCIES += gst1-plugins-base endif
@@ -43,7 +40,7 @@ define QT5MULTIMEDIA_INSTALL_STAGING_CMDS endef ifeq ($(BR2_STATIC_LIBS),) -ifneq ($(BR2_PACKAGE_GST_PLUGINS_BASE)$(BR2_PACKAGE_GST1_PLUGINS_BASE),) +ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y) define QT5MULTIMEDIA_INSTALL_TARGET_QGSTTOOLS_LIB cp -dpf $(STAGING_DIR)/usr/lib/libqgsttools*.so.* $(TARGET_DIR)/usr/lib endef
Signature · 1 line
2.1.4
PATCH 2/2 qt5multimedia: drop broken gstreamer 0.10 support
Quoted 30 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Peter" == Peter Korsgaard <[email protected]> writes:
The gstreamer 0.10 support code seems to have bitrotten as the build fails with undefined references to various functions:
.obj/qgstreameraudiodecodersession.o: In function `QGstreamerAudioDecoderSession::read()':
qgstreameraudiodecodersession.cpp:(.text+0x13a0): undefined reference to `QGstUtils::audioFormatForBuffer(_GstBuffer*)'
collect2: error: ld returned 1 exit status
Makefile:111: recipe for target '../../../../plugins/mediaservice/libgstaudiodecoder.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstaudiodecoder.so] Error 1
Makefile:45: recipe for target 'sub-audiodecoder-make_first' failed
make[5]: *** [sub-audiodecoder-make_first] Error 2
make[5]: *** Waiting for unfinished jobs.....obj/qgstreamercapturesession.o: In function `QGstreamerCaptureSession::probeBuffer(_GstBuffer*) [clone .part.30]':
qgstreamercapturesession.cpp:(.text+0x3fc8): undefined reference to `QGstUtils::bufferToImage(_GstBuffer*)'
collect2: error: ld returned 1 exit status
Makefile:153: recipe for target '../../../../plugins/mediaservice/libgstmediacapture.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediacapture.so] Error 1
Makefile:95: recipe for target 'sub-mediacapture-make_first' failed
make[5]: *** [sub-mediacapture-make_first] Error 2.obj/qgstreamerplayersession.o: In function `QGstreamerPlayerSession::QGstreamerPlayerSession(QObject*)':
qgstreamerplayersession.cpp:(.text+0xecc): undefined reference togst_video_connector_get_type' .obj/qgstreamerplayersession.o: In functionQGstreamerPlayerSession::processBusMessage(QGstreamerMessage const&)':
qgstreamerplayersession.cpp:(.text+0x5b4c): undefined reference to `QGstUtils::gstTagListToMap(_GstStructure const*)'
collect2: error: ld returned 1 exit status
Makefile:129: recipe for target '../../../../plugins/mediaservice/libgstmediaplayer.so' failed make[6]: *** [../../../../plugins/mediaservice/libgstmediaplayer.so] Error 1
Makefile:70: recipe for target 'sub-mediaplayer-make_first' failed
make[5]: *** [sub-mediaplayer-make_first] Error 2
Quoted 1 line
Signed-off-by Peter Korsgaard <[email protected]>
Committed, thanks.
Signature · 2 lines
Venlig hilsen, Peter Korsgaard