As I see some are still working on the Pi, and someone asked to "port" to Qt 5.4.0, this is a small update to the Qt Multimedia Backend POC.
This is what I updated so far:
- Merged code from omxplayer until a4ee074.
- Updated to work with ffmpeg 2.5.
- Updated to work on the latest Pi firmware ba43047.
- Updated some build scripts to speed up build.
- Updated to work with the new Qt 5.4.0.
The build procedure is mostly unchanged. I summarise it here with the new updates (I assume
you're in the root of the repo sources):
export RPI_SYSROOT=
export COMPILER_PATH=
cd tools
./compile_ffmpeg.sh
export QMAKE_PATH=
./prepare_openmaxil_backend.sh
This should build ffmpeg, build the PiOmxTextures lib (needed to get the hardware
interface to video and audio playback) and prepare the sources of the Qt multimedia
backend.
NOTE: I had to modify the libssh pkgconfig file ($RPI_SYSROOT/usr/lib/arm-linux-gnueabihf/pkgconfig/libssh.pc) to:
prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib/arm-linux-gnueabihf
includedir=${prefix}/include
Name: libssh
Description: The SSH Library
Version: 0.5.4
Libs: -L{libdir} -lssh
Cflags: -I{includedir}
Now you have to copy the directory of the plugin to the src/plugins subdirectory
of your Qt source tree. Once finished, this plugin will be built.
Unfortunately, still a patch to QtMultimedia is needed, so go into the qtmultimedia dir
of your Qt source tree (I tested on the Qt 5.4.0 tree) and patch using the patch provided
in tools:
cp -a /openmaxil_backend /qtmultimedia/src/plugins/openmaxil
patch -p1 < /tools/qt_multimedia_patch_5.4.0.patch
$QMAKE_PATH CONFIG+=raspberry
make -j
make install
Now you should have the new openmaxil plugin in your Qt prefix. When using, remember that
libPiOmxTextures must be in the runtime library path when using the plugin. If an error like this is returned when running an application using the plugin:
luca@raspberrypi ~ $ ./POCPlayer
* failed to open vchiq instance
then set the permissions appropriately:
sudo chmod a+rw /dev/vchiq
Or better add your user to the video group. Same stands for input devices:
sudo usermod -a -G video
sudo usermod -a -G input
As usual remember this is just a POC.
If anything went wrong, file an issue on github. Someone may have a look.
Bye! ;-)
NOTE: It seems that 1080p video on 1080p output really stresses the GPU at the point that the video starts to have issues and blocks. I tried to test Pi turbo mode, that should increase GPU performance but my Pi seems not to agree on the overvolt parameter. USB ports completely crash and then the system goes bye-bye. If anyone was able to test somehow animations and 1080p playout on 1080p resolution with turbo mode and like 450MHz GPU, please let me know!