Has anybody successfully played video in the QtMultimediaWidgets player application while using the xcb backend? I've found a number of posts regarding video playback in Qt5 with the VPU acceleration, but most of them seem to require disabling X11.
When I try using XCB, the video simply hangs while loading the video:
root@imx6qsabresd:~# /usr/share/qt5/examples/multimediawidgets/player/player /BigBuckBunny.avi
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
Aiur: 3.0.11
Core: AVI_PARSER_03.05.12 build on Jul 15 2014 02:45:03
mime: video/x-msvideo
file: /usr/lib/imx-mm/parser/lib_avi_parser_arm11_elinux.so.3.1
Content Info:
URI:
file:///BigBuckBunny.avi
Idx File:
/home/root/.aiur/.BigBuckBunny.avi.aidx
Seekable : Yes
Size(byte): 1370826
Movie Info:
Seekable : Yes
Live : No
Duration : 0:00:32.496326000
ReadMode : Track
Track : 2
Track 00 [video_000000] Enabled
Duration: 0:00:32.480000000
Language: und
Mime:
video/mpeg, mpegversion=(int)4, parsed=(boolean)true, width=(int)320, height=(in
t)240, framerate=(fraction)25/1
[INFO] Product Info: i.MX6Q/D/S
vpudec versions :smileyhappy:
plugin: 3.0.11
wrapper: 1.0.46(VPUWRAPPER_ARM_LINUX Build on Feb 12 2015 15:09:45)
vpulib: 5.4.23
firmware: 3.1.1.46056
Track 01 [audio_000000] Enabled
Duration: 0:00:32.496326000
Language: und
Mime:
audio/mpeg, mpegversion=(int)1, framed=(boolean)true, channels=(int)1, rate=(int
)22050, bitrate=(int)0
Beep: 3.0.11
Core: MP3 decoder Wrapper build on Mar 21 2014 15:04:50
mime: audio/mpeg, mpegversion = (int)1
file: /usr/lib/imx-mm/audio-codec/wrap/lib_mp3d_wrap_arm12_elinux.so.3
CODEC: BLN_MAD-MMCODECS_MP3D_ARM_02.13.00_CORTEX-A8 build on Apr 10 2014 15:26:15.
If I set GST_DEBUG=2, I get the following warning over and over again:
aiurdemux /home/justin/work/yocto/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/gst-fsl-plugin/3.0.11-r0/gst-fsl-plugins-3.0.11/src/parser/aiur/src/aiurdemux.c:4095:aiurdemux_push_pad_buffer: Pad video push error type -4
The same video plays fine using gplay, playbin2, and a standard manual gstreamer pipeline. I'm using the head of line for all of the metalayers (include meta-qt5). I synced the repo yesterday. I did have to disable the gstreamer1.0 patches (I'm using gstreamer 0.10) in the qtmultimedia recipe.
If it helps, here's more information about what I'm currently using:
meta-fsl-arm-extra dizzy
meta-fsl-arm dizzy
meta-qt5 master (commit adeaa6128b665920eb98eb7c064f4aacbd74b873)
Qt5.4
Linux 3.10.17
gstreamer 0.10.36
gst-fsl-plugins 3.0.11
libfslcodec 4.0.1
We are in some projects, for customers, using QtMultimedia. In our case we used the QML based plugin and it works fine.
Check the qmlvideofx or similar and see if it works for you.
Thank you very much for the reply.
The qmlvideofx player does seem to work. Any clue as to why the non-QML version hangs? I think we can work with the QML-based version moving forward, but understanding the limitations/shortcomings of the other player will be helpful in future projects.
I didn't investigate as our customer is using QML.