[Solved] Missing gstreamer mediaservices in Qt5.2.1
-
Hmm, found more log data in
qtmultimedia/5.2.1-r0/build/config.log
and
qtmultimedia/5.1.1-r0/build/config.log
respectively,It is absolutely clear that the configure did not at all check for gstreamer in 5.2.1 (whereas it does that in 5.1.1).
There are also a folder config.tests in each release directory. The 5.1.1 includes the following tests:
@alsa/
gstreamer_appsrc/
gstreamer_photography/
resourcepolicy/
gstreamer/
gstreamer_encodingprofiles/
pulseaudio/
xvideo/ @Whereas 5.2.1 contains:
@alsa/
pulseaudio/
resourcepolicy/@Now, the question is why?
-
Hmm, found something, digging through the meta-qt5 sources:
in qtmultimedia.inc (from 5.1.1):
@require qt5.incDEPENDS += "qtdeclarative gstreamer gst-plugins-base alsa-lib "
PACKAGECONFIG ??= ""
PACKAGECONFIG[openal] = ",,openal-soft"do_configure_prepend() {
# disable openal test if it isn't enabled by PACKAGECONFIG
sed -i 's/^qtCompileTest(openal)/OE_OPENAL_ENABLED:qtCompileTest(openal)/g' ${S}/qtmultimedia.pro
}EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'openal', 'CONFIG+=OE_OPENAL_ENABLED', '', d)}"
@In 5.2.1:
@require qt5.incDEPENDS += "qtdeclarative alsa-lib"
PACKAGECONFIG ??= ""
PACKAGECONFIG[openal] = ",,openal-soft"
PACKAGECONFIG[gstreamer010] = ",,gstreamer gst-plugins-base"do_configure_prepend() {
# disable openal test if it isn't enabled by PACKAGECONFIG
sed -i 's/^qtCompileTest(openal)/OE_OPENAL_ENABLED:qtCompileTest(openal)/g' ${S}/qtmultimedia.pro
# disable gstreamer-0.10 test if it isn't enabled by PACKAGECONFIG
sed -i 's/^( *)qtCompileTest(gstreamer) {/\1OE_GSTREAMER010_ENABLED:qtCompileTest(gstreamer) {/g' ${S}/qtmultimedia.pro
}EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'openal', 'CONFIG+=OE_OPENAL_ENABLED', '', d)}"
EXTRA_QMAKEVARS_PRE += "${@base_contains('PACKAGECONFIG', 'gstreamer010', 'CONFIG+=OE_GSTREAMER010_ENABLED', '', d)}"
@Now, this looks to me as if gstreamer is deliberately disabled, but depending on some "PACKAGECONFIG". No idea, what exactly this is in yocto.
Can anybody comment on this?
Thanks
Michael
P.S.: I will change the qtmultimedia recipe and remove the disabling. Will be interesting to see if I get a working qtmultimedia then...
-
If anybody is interested, here is the corresponding commit:
https://github.com/meta-qt5/meta-qt5/commit/faad8d1df1aee67f9d1a7e9ea3c13f92d04baf8e
I try now to build with
@PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"@
in my local.conf. Let's see if that works.
-
Ok, this works. Mediaservices for gstreamer are now built. So far, so good.
Unfortunately, while Qt5.2.1 does indeed better than Qt5.1.1 on some operations, multimedia is not better at all.
Result on a quad-core imx6 device:
Playing an HD video stream using gstreamer: CPU < 10% usage
In Qt5: 100% of one core (QSGRender)Playing a FHD video stream using gstreamer: CPU < 15 usage
in Qt5: 100% CPU usage, unplayable, very low fps, lots of dropped framesPlaying a 640x480 rtsp stream with gstreamer: CPU < 5% usage, nearly no frame drops
in Qt5: CPU <5-10% usage, but unplayable, very low fps, lots of dropped frames (>90%)The integration of imx6 in Qt5 multimedia still seems to be very much lacking. I should probably consider moving to a baytrail system, hoping that the integration is better there.
-
Glad you succeeded building Qt 5.2.1
For the performance problem, you should bring it to the interest mailing list you'll find there Qt's developers/maintainers
-
Thanks, sounds like a good idea. Any idea which group / mailing list? You mean those under the "groups" link, right? Should I use the Linux group or is there a special group for imx6?
-
You're welcome !
Nop, I mean this "mailing list":http://lists.qt-project.org/mailman/listinfo/interest
-
Done that. Let's see what comes out of this. Otherwise, I would need to lok at a different platform (bay trail?), although I really like the imx6 products available today (seen the cubox-i? really cude :-) ).
-
Interesting answer on the interest list. As it seems in Qt5.3 there is a new commit, which should help very much with the performance problem:
https://codereview.qt-project.org/#change,76764
Now, I need to find out, how to get Qt5.3. I'm using Yocto and the meta-qt5 branch. Either I am lucky and it's already there, or I need to find out, howto compile it without Yocto.
-
Or you could check how meta-qt5 is prepared and create yours
-
I was in contact with Martin Jensa. He does have a 5.3 branch. I was able to compile and deploy it, but gstreamer (in Qt) hangs when trying to play a video. I need to find out, why.
-
Good news (and some bad news)!!!!
Video play in Qt5.3 on imx6 is really much, much better!!!!
However, either something in QT5.3 has changed versus Qt5.2 or theer is somewhere a bug in Qt5.3. My app is no longer working. It just doesn't start the video. (Actually it DOES start video playback but then it hangs. No idea, why, so far... It worked perfectly with 5.2.1.
-
Solved the problem. Some behaviour changed in Qt5.3. Easy to fix.
Here are my notes on compiling Qt5.3 on Yocto, if anybody is interested: https://community.freescale.com/docs/DOC-100419
-
Nice !
Thanks for sharing the guide
Since you have it working, please update the thread title prepending [solved] so other forum users may know a solution has been found :)
-
bq. I try now to build with PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010" in my local.conf. Let’s see if that works.
Can you tell me which file "local.conf" you used? I am trying to do the same, and i am stuck at the same point. This solutions seems to be the most promising one on the web