diff mbox

[1/2] qt5base: add optional gstreamer1 support

Message ID 1445414790-16583-1-git-send-email-peter@korsgaard.com
State Accepted
Commit da9f034d5d1df10ad6c3e249a9a488dc7ef1c42a
Headers show

Commit Message

Peter Korsgaard Oct. 21, 2015, 8:06 a.m. UTC
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.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
---
 package/qt5/qt5base/qt5base.mk | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Thomas Petazzoni Oct. 21, 2015, 11:42 a.m. UTC | #1
Peter,

On Wed, 21 Oct 2015 10:06:29 +0200, Peter Korsgaard wrote:
> 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.
> 
> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

Please also look at http://patchwork.ozlabs.org/patch/504627/ and
http://patchwork.ozlabs.org/patch/504628/ which have some overlap.

Thanks,

Thomas
Peter Korsgaard Oct. 21, 2015, 11:48 a.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 > Peter,
 > On Wed, 21 Oct 2015 10:06:29 +0200, Peter Korsgaard wrote:
 >> 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.
 >> 
 >> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

 > 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 <benoit@wsystem.com>
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.
Julien Corjon Oct. 22, 2015, 3:19 p.m. UTC | #3
Peter,

Le 21/10/2015 13:48, Peter Korsgaard a écrit :
>>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

>

>   > Peter,

>   > On Wed, 21 Oct 2015 10:06:29 +0200, Peter Korsgaard wrote:

>   >> 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.

>   >>

>   >> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

>

>   > 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 <benoit@wsystem.com>

> 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).


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.

>

> 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
Peter Korsgaard Oct. 22, 2015, 5:49 p.m. UTC | #4
>>>>> "Julien" == Julien CORJON <corjon.j@ecagroup.com> writes:

Hi,

>> 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.

 >> 
 >> 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?
Will Wagner Oct. 22, 2015, 6:59 p.m. UTC | #5
On 22/10/2015 18:49, Peter Korsgaard wrote:
>>>>>> "Julien" == Julien CORJON <corjon.j@ecagroup.com> writes:
> Hi,
>
>>> 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.

This is working fine for me. I have 0.10 building and working on a board.

>
>   >>
>   >> 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.
Peter Korsgaard Oct. 22, 2015, 8:17 p.m. UTC | #6
>>>>> "Will" == Will Wagner <will_wagner@carallon.com> writes:

Hi,

 > On 22/10/2015 18:49, Peter Korsgaard wrote:

 >> 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.

 >> 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)?
Will Wagner Oct. 23, 2015, 7:55 a.m. UTC | #7
On 22/10/2015 21:17, Peter Korsgaard wrote:
>>>>>> "Will" == Will Wagner <will_wagner@carallon.com> writes:
> Hi,
>
>   > On 22/10/2015 18:49, Peter Korsgaard wrote:
>
>   >> 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.

No I don't see that. I'll take a look and see what is happening.

>
>   >> 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)?
>

I hadn't thought of that, but yes presumably that would work.

Regards
Will
Peter Korsgaard Oct. 25, 2015, 8:02 p.m. UTC | #8
>>>>> "Peter" == Peter Korsgaard <peter@korsgaard.com> 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/

 > 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 <peter@korsgaard.com>

Committed, thanks.
diff mbox

Patch

diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 570cd35..4eed126 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -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