Binaries for Hardware Accelerated Qt 5.5.1 Multimedia Backend on Raspbian Jessie (POT 5.1.0)
This is a build of version 5.1.0 for Raspbian Jessie of POT that includes Qt 5.5.1. As many asked in the past, this version also includes the QtWebKit module (WebKit1 and WebKit2). The changes are:
- Fixed bugs reported on github.
- New environment variables used for controlling deinterlacing:
- POT_HALF_FRAMERATE_MODE: if set to 1 the number of frames sent to the renderer are halved. This is needed mostly when using deinterlacing.
- POT_TEXTURE_COUNT: number of texture to be used when buffering. Default is 4.
- POT_DEINTERLACE_MODE: the type of deinterlacing; 0 means off, 1 means auto and 2 means on.
- POT_DEINTERLACE_QPU: 0 or 1; indicates whether to use the QPU for deinterlacing.
- Added watchdogs to monitor the video capabilities and discover instability. These are currently disable but you can enable if needed.
- Some other minor fixes and improvements.
Please remember to update the firmware to the latest possible version as it includes a fix relevant to POT.
Please file bugs to github if you experience issues.
Bye! 😉
Download PiOmxTextures 5.1.0 for Raspbian Jessie Pi2 here (extraction code is: bd4f).
Download PiOmxTextures 5.1.0 for Raspbian Jessie Pi2 with Bluetooth (BLE) here.
This is the configure summary of the Qt build:
Configure summary Building on: linux-g++ (x86_64, CPU features: mmx sse sse2) Building for: devices/linux-rasp-pi2-g++ (arm, CPU features: neon) Platform notes: - Also available for Linux: linux-clang linux-kcc linux-icc linux-cxx qmake vars .......... styles += mac fusion windows QT_CFLAGS_GLIB = -pthread -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_GLIB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgthread-2.0 -pthread -lglib-2.0 QT_CFLAGS_PULSEAUDIO = -D_REENTRANT -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include QT_LIBS_PULSEAUDIO = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lpulse-mainloop-glib -lpulse -lglib-2.0 QMAKE_CFLAGS_FONTCONFIG = -I/opt/rpi/sysroot/usr/include/freetype2 QMAKE_LIBS_FONTCONFIG = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lfontconfig -lfreetype QMAKE_INCDIR_LIBUDEV = QMAKE_LIBS_LIBUDEV = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -ludev QMAKE_LIBINPUT_VERSION_MAJOR = 1 QMAKE_LIBINPUT_VERSION_MINOR = 0 QMAKE_INCDIR_LIBINPUT = /opt/rpi/sysroot/home/pi/qtdeps/include QMAKE_LIBS_LIBINPUT = -L/opt/rpi/sysroot/home/pi/qtdeps/lib -linput QMAKE_LIBXI_VERSION_MAJOR = 1 QMAKE_LIBXI_VERSION_MINOR = 7 QMAKE_LIBXI_VERSION_PATCH = 4 QMAKE_X11_PREFIX = /usr QMAKE_XKB_CONFIG_ROOT = /usr/share/X11/xkb QMAKE_CFLAGS_XCB = QMAKE_LIBS_XCB = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lxcb-sync -lxcb-xfixes -lxcb-render -lxcb-randr -lxcb-image -lxcb-shm -lxcb-keysyms -lxcb-icccm -lxcb-shape -lxcb INCLUDEPATH += "/opt/rpi/sysroot/home/pi/qtdeps/include" LIBS += -L"/opt/rpi/sysroot/home/pi/qtdeps/lib" sql-drivers = sql-plugins = sqlite qmake switches ......... Build options: Configuration .......... accessibility accessibility-atspi-bridge alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile cups dbus egl eglfs eglfs_brcm enable_new_dtags evdev eventfd fontconfig full-config getaddrinfo getifaddrs glib gstreamer-1.0 harfbuzz iconv icu inotify ipv6ifname large-config largefile libinput libproxy libudev linuxfb medium-config minimal-config mremap mtdev neon nis opengl opengles2 openssl pcre png posix_fallocate pulseaudio qpa qpa reduce_exports release rpath shared small-config system-freetype system-jpeg system-png system-zlib tslib use_gold_linker xcb xcb-glx xcb-plugin xcb-render xcb-xlib xinput2 xkbcommon-qt xlib xrender Build parts ............ libs examples Mode ................... release Using sanitizer(s)...... none Using C++11 ............ yes Using gold linker....... yes Using new DTAGS ........ yes Using PCH .............. no Target compiler supports: Neon ................. yes Qt modules and options: Qt D-Bus ............... yes (loading dbus-1 at runtime) Qt Concurrent .......... yes Qt GUI ................. yes Qt Widgets ............. yes Large File ............. yes QML debugging .......... yes Use system proxies ..... no Support enabled for: Accessibility .......... yes ALSA ................... yes CUPS ................... yes Evdev .................. yes FontConfig ............. yes FreeType ............... yes (system library) Glib ................... yes GStreamer .............. yes (1.0) GTK theme .............. no HarfBuzz ............... yes (bundled copy) Iconv .................. yes ICU .................... yes Image formats: GIF .................. yes (plugin, using bundled copy) JPEG ................. yes (plugin, using system library) PNG .................. yes (in QtGui, using system library) journald ............... no libinput................ yes mtdev .................. yes (system library) Networking: getaddrinfo .......... yes getifaddrs ........... yes IPv6 ifname .......... yes libproxy.............. yes OpenSSL .............. yes (loading libraries at run-time) NIS .................... yes OpenGL / OpenVG: EGL .................. yes OpenGL ............... yes (OpenGL ES 2.0+) OpenVG ............... no PCRE ................... yes (bundled copy) pkg-config ............. yes PulseAudio ............. yes QPA backends: DirectFB ............. no EGLFS ................ yes EGLFS i.MX6....... . no EGLFS KMS .......... no EGLFS Mali ......... no EGLFS Raspberry Pi . yes EGLFS X11 .......... no LinuxFB .............. yes XCB .................. yes (system library) EGL on X ........... no GLX ................ yes MIT-SHM ............ yes Xcb-Xlib ........... yes Xcursor ............ yes (loaded at runtime) Xfixes ............. yes (loaded at runtime) Xi ................. no Xi2 ................ yes Xinerama ........... yes (loaded at runtime) Xrandr ............. yes (loaded at runtime) Xrender ............ yes XKB ................ yes XShape ............. yes XSync .............. yes XVideo ............. yes Session management ..... yes SQL drivers: DB2 .................. no InterBase ............ no MySQL ................ no OCI .................. no ODBC ................. no PostgreSQL ........... no SQLite 2 ............. no SQLite ............... yes (plugin, using bundled copy) TDS .................. no tslib .................. yes udev ................... yes xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb) xkbcommon-evdev......... no zlib ................... yes (system library)
Open an issue in github, if I'll find the time I'll have a look.
Hi. I have tried to play video with audio. Video plays perfectly but I've got no audio. Then i tried to play just audio and got the same problem.
Code:
MediaPlayer {
id: mpa
source: "file:///home/pi/prest.mp3"
autoPlay: true
volume: 1.0
onPlaying: {
console.log("Volume: " + mpa.volume)
}
}
Logs:
[mp3 @ 0x67825ad0] Skipping 417 bytes of junk at 85.
[mp3 @ 0x67825ad0] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from '/home/pi/prest.mp3':
Metadata:
artist : Quinn String Quartet
album : Israeli Concertino
genre : Classical
Duration: 00:01:06.65, start: 0.000000, bitrate: 128 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Audio codec mp3 channels 2 samplerate 44100 bitspersample 16
qml: Volume: 0.009999999776482582
I get no errors in logs, but volume of my media player is near zero. Do you have idea what can be the issue? Without POT its OK but video is not accelerated.
What is the memory leaked? You can propose the fix if you found it.
I have found the problem when you initialize the mediaplayer a lot of times and destroy It the player Will crash… there is a memoryleak when you destroy the mediaplayer. Solution I implementeren now is one mediaplayer which I overlap over my slider when he is finished. For the slider I have made a screenshot of the first and the last frame. And nog everything is working fine…
Thanks for the great work…
Cheers
You can file the bug on github but you need to provide a simple way to reproduce. There are people running for weeks so it may be something related to your specific use case.
Thanks for your work on this.
I have one error i can get rid off.
eglCreateImageKHR: failed to create image for buffer 0x28 target 12465 error 0x300c
22:55:04.546 ERROR: Failed to create KHR image: 12300.
I have made a app who shows a image in a ListView slides and shows a video (using POT) after the video has been showed i destory the video object en plays a image or a video so on so… after 8 minutes i get the error escripted above… I think there is a leak… but i don't no how to fix it
Ah Luca, I found the why linker could not be able to find qtdeps, becasuse the rpath link has been setted to different path where I have copied them. I copied qtdeps to root but rpath link setted to /home/pi/qtdeps/lib.
So everythink is ok now, I thank you so much.
Sina
This comment has been removed by the author.
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_compareNames_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_fromUnicode_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_countAliases_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_get_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucol_open_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_openTimeZones_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `u_strToUpper_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_close_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_openTimeZoneIDEnumeration_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_getDSTSavings_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_toUnicode_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucol_setAttribute_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_open_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucol_strcoll_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_close_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_getTimeZoneDisplayName_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_open_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucol_close_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_openCountryTimeZones_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_getStandardName_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucol_getSortKey_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_getAvailableName_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_setMillis_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `u_errorName_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_getDefaultName_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `uenum_next_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `u_strToLower_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_inDaylightTime_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `uenum_close_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_clone_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_getAlias_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_getMaxCharSize_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucal_getDefaultTimeZone_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_setSubstChars_55'
/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so: undefined reference to `ucnv_countAvailable_55'
collect2: error: ld returned 1 exit status
/opt/rpi/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libicui18n.so.55, needed by /opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
/opt/rpi/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libicuuc.so.55, needed by /opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
/opt/rpi/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: warning: libicudata.so.55, needed by /opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.1/lib/libQt5Core.so, not found (try using -rpath or -rpath-link)
Those libs are provided in qtdeps. What's the exact error?
Hello,
I thank you for your support Luca, really appreciated. I would like to ask you about dependencies; I am trying to cross compile my project (which I have started on POT 5 beta 2) against POT 5.1 jessie on pi2. but when I try to compile it, it fails to compile, it could not find "libicui18n.so.55, libicuuc.so.55, libicudata.so.55". I have already have libicu-dev and libicu52 but those are provide "libicui18n.so.52, libicuuc.so.52, libicudata.so.52" but I could not be able to find "libicui18n.so.55, libicuuc.so.55, libicudata.so.55". Do you have any advice where can i find those or how can i solve this problem?
Thank you,
Sina
You need to enable shared opengl context. Refer to Qt documentation for that.
Hello,
I have this error message when I play a video with qt example (examples/multimedia/video/qmlvideo or qmlvideofx) :
17:52:39.706 ERROR: Failed to get shared OGL context. Please enable it with the proper attr.
What to do to fix this error ? I try with another video, but I had the same error message
Raspberry Pi firmware is up-to-date. Full log :
Unable to query physical screen size, defaulting to 100 dpi.
To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters).
17:52:39.702 INFORMATION: POT build Nov 10 2015 21:01:04.
17:52:39.705 INFORMATION: Initializing GPU context in media processor…
Requesting control for org.qt-project.qt.metadatareadercontrol/5.0…
17:52:39.705 INFORMATION: Initializing buffer provider…
Requesting control for org.qt-project.qt.mediaavailabilitycontrol/5.0…
Requesting control for org.qt-project.qt.mediaplayercontrol/5.0…
Requesting control for org.qt-project.qt.medianetworkaccesscontrol/5.0…
Requesting control for org.qt-project.qt.videorenderercontrol/5.0…
Input #0, h264, from '/opt/vc/src/hello_pi/hello_video/test.h264':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: h264 (Main), yuv420p(tv, bt709), 1920×1080, 25 fps, 25 tbr, 1200k tbn, 50 tbc
17:52:41.278 INFORMATION: Instantiating texture data…
17:52:41.279 INFORMATION: Creating EGLImageKHR…
eglCreateImageKHR: failed to create image for buffer 0x74b57d5 target 12465 error 0x3008
17:52:41.280 ERROR: Failed to create KHR image: 12296.
17:52:41.280 INFORMATION: Instantiating texture data…
17:52:41.280 INFORMATION: Creating EGLImageKHR…
eglCreateImageKHR: failed to create image for buffer 0x74b57d5 target 12465 error 0x3008
17:52:41.281 ERROR: Failed to create KHR image: 12296.
17:52:41.283 INFORMATION: Instantiating texture data…
17:52:41.283 INFORMATION: Creating EGLImageKHR…
eglCreateImageKHR: failed to create image for buffer 0x74b57d5 target 12465 error 0x3008
17:52:41.283 ERROR: Failed to create KHR image: 12296.
17:52:41.283 INFORMATION: Instantiating texture data…
17:52:41.283 INFORMATION: Creating EGLImageKHR…
eglCreateImageKHR: failed to create image for buffer 0x74b57d5 target 12465 error 0x3008
17:52:41.283 ERROR: Failed to create KHR image: 12296.
17:52:41.284 WARNING: Couldn't get a valid texture.
Video codec omx-h264 width 1920 height 1080 profile 77 fps 25.000000
V:PortSettingsChanged: 1920×1080@25.00 interlace:0 deinterlace:0 anaglyph:0 par:inf layer:0 alpha:255
Best regards
No, as you can see Qt is built for armv7 with neon optimisations. You'll have to rebuild it. I'll provide the sources shortly.
Hi Luca,
does this run on the pi-1 as well? If not, will you upload that package as well?
Would be great.