Binaries for Hardware Accelerated Qt 5.5.0 Multimedia Backend on Raspberry Pi 1 and 2 (4.5.0 & 4.5.1)

These are two packages containing binaries for PiOmxTextures (POT) for Raspberry Pi 1 and 2 running Raspbian.

PiOmxTextures 4.5.0

The first package contains POT 4.5.0 for Raspberry Pi (1):

  • Improved sample code and POCPlayer.
  • Added POCPlayer tests running multiple MediaPlayer instances.
  • Improved rendering performance.
  • Added support for multiple players (this seems to still show issues on Pi1, a little better on Pi2).
  • Fixed volume range to avoid distortion.
  • POCPlayer now shows how to render 24 bit color depth.
  • Other fixes.
  • Moved to Qt 5.5.0 (including libinput support).*

Download PiOmxTextures 4.5.0 for Pi1 here.

PiOmxTextures 4.5.1 (for armv7)

The second package contains POT 4.5.1 for Raspberry Pi 2 and adds to the above:

  • Improved buffer provider code.
  • ffmpeg 2.7.1 (old was 2.6) compiled with proper CPU optimisations.
  • Added compiler optimisations to leverage the new armv7 processor and NEON support for POT, Qt 5.5.0** and ffmpeg builds.

Download PiOmxTextures 4.5.1 for Pi2 here.

The first package ran long tests and is supposed to guarantee more stability. Tests showed uptime of POCPlayer (sample media player included in the sources) way over a month uninterruptedly. The second package instead did not run any long test. Please let me know if you notice anything wrong.

Both packages contain:

  • piomxtextures_pocplayer: sample player which includes tests for animations, loops and commands. Have a look at the sources to understand how it works.
  • Qt-rasp(2)-5.5.0.tar: contains the build of Qt 5.5.0 with proper CPU optimisations. This also includes the host tools like qmake. rpath is set to /usr/local/Qt-rasp(2)-5.5.0 so you’re probably better install it there.
  • qtdeps.tar: this contains libevdev and libinput which are not available in Raspbian repos. Qt will need these in the runtime lib path to work.

Please, let me know if you encounter issues with the packages or if anything goes wrong.

Bye! 😉

NOTE: This is not available in github yet. But it will shortly.

*Qt Configuration for Raspberry Pi 1

   Configure summary

Building on:   linux-g++ (x86_64, CPU features: mmx sse sse2)
Building for:  devices/linux-rasp-pi-g++ (arm, CPU features: none detected)
Platform notes:

            - Also available for Linux: 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 -lrt -lglib-2.0  QT_CFLAGS_QGTKSTYLE = -pthread -I/opt/rpi/sysroot/usr/include/gtk-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/opt/rpi/sysroot/usr/include/gio-unix-2.0/ -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pixman-1 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/gdk-pixbuf-2.0 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/harfbuzz -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/freetype2 -I/opt/rpi/sysroot/usr/include/atk-1.0 -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include  QT_LIBS_QGTKSTYLE = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgobject-2.0 -lglib-2.0  QT_CFLAGS_QGTK2 = -pthread -I/opt/rpi/sysroot/usr/include/gtk-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/gtk-2.0/include -I/opt/rpi/sysroot/usr/include/gio-unix-2.0/ -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/cairo -I/opt/rpi/sysroot/usr/include/pixman-1 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/gdk-pixbuf-2.0 -I/opt/rpi/sysroot/usr/include/libpng12 -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/harfbuzz -I/opt/rpi/sysroot/usr/include/pango-1.0 -I/opt/rpi/sysroot/usr/include/freetype2 -I/opt/rpi/sysroot/usr/include/atk-1.0 -I/opt/rpi/sysroot/usr/include/glib-2.0 -I/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf/glib-2.0/include  QT_LIBS_QGTK2 = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfreetype -lfontconfig  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 = -ludev  QMAKE_INCDIR_XKBCOMMON_EVDEV =  QMAKE_LIBS_XKBCOMMON_EVDEV = -L/opt/rpi/sysroot/usr/lib/arm-linux-gnueabihf -lxkbcommon  QMAKE_LIBINPUT_VERSION_MAJOR = 0 QMAKE_LIBINPUT_VERSION_MINOR = 19 QMAKE_INCDIR_LIBINPUT = /opt/rpi/sysroot/usr/local/include  QMAKE_LIBS_LIBINPUT = -L/opt/rpi/sysroot/usr/local/lib -linput  QMAKE_LIBXI_VERSION_MAJOR = 1 QMAKE_LIBXI_VERSION_MINOR = 6 QMAKE_LIBXI_VERSION_PATCH = 1 QMAKE_X11_PREFIX = /usr DEFINES += QT_NO_XKB 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  sql-drivers =  sql-plugins =  odbc sqlite sqlite2 tds 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 gtk2 gtkstyle harfbuzz iconv icu inotify ipv6ifname large-config largefile libinput libproxy libudev linuxfb medium-config minimal-config mremap mtdev 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-sm 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 ................. no

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 .............. yes
  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 ................ no
      XShape ............. yes
      XSync .............. yes
      XVideo ............. yes
  Session management ..... yes
  SQL drivers: 
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. yes (plugin)
    PostgreSQL ........... no
    SQLite 2 ............. yes (plugin)
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. yes (plugin)
  tslib .................. yes
  udev ................... yes
  xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
  xkbcommon-evdev......... no
  zlib ................... yes (system library)

**Qt Configuration for Raspberry Pi 2

   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-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 -lrt -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 = -ludev  QMAKE_LIBINPUT_VERSION_MAJOR = 0 QMAKE_LIBINPUT_VERSION_MINOR = 19 QMAKE_INCDIR_LIBINPUT = /opt/rpi/sysroot/usr/local/include  QMAKE_LIBS_LIBINPUT = -L/opt/rpi/sysroot/usr/local/lib -linput  QMAKE_LIBXI_VERSION_MAJOR = 1 QMAKE_LIBXI_VERSION_MINOR = 6 QMAKE_LIBXI_VERSION_PATCH = 1 QMAKE_X11_PREFIX = /usr DEFINES += QT_NO_XKB 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  sql-drivers =  sql-plugins =  odbc sqlite sqlite2 tds 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 ................ no
      XShape ............. yes
      XSync .............. yes
      XVideo ............. yes
  Session management ..... yes
  SQL drivers: 
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. yes (plugin)
    PostgreSQL ........... no
    SQLite 2 ............. yes (plugin)
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. yes (plugin)
  tslib .................. yes
  udev ................... yes
  xkbcommon-x11........... yes (bundled copy, XKB config root: /usr/share/X11/xkb)
  xkbcommon-evdev......... no
  zlib ................... yes (system library)

94 thoughts on “Binaries for Hardware Accelerated Qt 5.5.0 Multimedia Backend on Raspberry Pi 1 and 2 (4.5.0 & 4.5.1)”

  1. I did not manage to rotate touch under EGLFS as well … but it did work by doing
    export QT_QPA_FB_DISABLE_INPUT=1
    export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=rotate=90
    export QT_QPA_EGLFS_DISABLE_INPUT=0
    export QT_QPA_EGLFS_NO_LIBINPUT=1
    Dont know why, just glad it works now.

  2. I mean that QT is using EGL and opengl and it is not hardware accelerated in versions 5.3 and below ?
    The hardware acceleration comes from version 5.5 ?

    I am talking about qml graphical interface hardware acceleration and not video playback hardware acceleration.

    Thanks

  3. Hello Luca,

    I am back to your implementation. Until now, my experience with your implementation is much better then gstreamer1.0. Your backend is using much less CPU then gstreamer1.0 implementation(gstreamer1.0 CPU usage is ~35%, POT CPU usage is ~10%). And also gstreamer1.0 has some undesirable shades on the video..

    But on the other hand, while the performance much better then gstreamer1.0 backend, some of the properties does not working. For example MediaPlayer's 'loops' property. I have set it to MediaPlayer.Infinite but somehow it does not loop the video and also it gives that message output on the debug output;

    11:43:19.291 VERBOSE: Stopping OMX clock…
    11:43:19.292 INFORMATION: Cleaning up…
    11:43:19.293 VERBOSE: Closing players…
    11:43:19.413 VERBOSE: Metadata update requested.
    11:43:19.415 VERBOSE: Freeing texture…
    11:43:19.415 INFORMATION: Cleanup done.
    11:43:19.416 DEBUG: State changed…

    Can you please help me how to loop it infinitely?

    Thank you,
    Sina

  4. I do understand,
    Thanks for your highly helpful support and your valuable efforts. I'll try to get more experienced and try to found out the difference by myself. But at this time, your implementation would be a perfect example through my media player implementation.

    Cheers,
    Sina

  5. v5.0.0-beta1 introduces a new env variable INTERLACE_MODE. Setting it to 0, 1 or 2 sets the deinterlace mode to off, auto and force respectively.
    But if still does not work, I have no idea without debugging it directly. If you want me to have a look please contact me in private (linked for instance) so that I can send you the serial.
    Regards.

  6. I'm sorry, but I have no information to provide about gst-omx.
    POT was born more than 3 years ago when gst-omx was not working or its performance was horrible. Shortly I stopped working on it cause I hoped gst-omx would become more performant with the introduction of gst 1.0. Instead, since then, I was asked by many to keep improving POT for their use case. I have not tested nor used recently in any way gst-omx cause I have no practical interest in doing it.

  7. I just tried with URI but not working :S

    By the way Luca, since I am not so well exprienced with Qt neither with UNIX/Linux, I would like to ask you the difference between your implementation vs gst-omx. I have two SD cards, one has your Qt with your build and the other one is with gstreamer1.0. For my first expriences, build with gstreamer1.0 is also providing sufficient video playing quality.

    So what are the advantages and disadvantages between those builds? Would you please explain it roughly?

    Thank you for support,
    I will keep following you,
    Cheers,
    Sina

  8. I have fixed it, problem is in latest rpi2 firmware, so I temporarily downgraded it.

    Latest binaries (not beta) is playing very smoothly, but interlaced (Thats why I need latest sources, to try to enable deinterlacing and because I have some other modifications in Qt (I can't just use your binaries as they are))

    I can provide license, but I need your rpi2 serial number, see: http://www.raspberrypi.com/mpeg-2-license-key/

    Thanks, jan

  9. Luca,

    Successfully I runned POT_pocplayer :),

    The problem was I was missing setting LD_LIBRARY_PATH variable to /qtdeps/lib…

    So here is how I manage to do it,

    $export QT_DEBUG_PLUGINS=1

    than I have runned "./piomxtextures_pocplayer file:///home/pi/big_buck_bunny_1080p_h264.mov" and it gives missing packages, so it was the libinput.so which is you have already shared in "/qtdeps/lib" so I have

    $export LD_LIBRARY_PATH=/qtdeps/lib (btw, my qtdeps is on / (root))

    and everything was ok so it just worked! Thank you Luca 🙂

    But I have another problem, when I try to run your sample directory examples on qmlscene it gives error, here is the log;

    $/usr/local/Qt-rasp2-5.5.0/bin/qmlscene /home/pi/piomxtextures_samples/video_position.qml /home/pi/big_buck_bunny_1080p_h264.mov
    it gives that output:
    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).
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/Qt-rasp2-5.5.0/plugins/styles" …
    QFactoryLoader::QFactoryLoader() checking directory path "/usr/local/Qt-rasp2-5.5.0/bin/styles" …
    file:///home/pi/big_buck_bunny_1080p_h264.mov:1 Expected token `numeric literal'
    file:///home/pi/big_buck_bunny_1080p_h264.mov:1 Expected a qualified name id

    Thank you,
    Sina

  10. Good morning Luca,

    I have read and follow your instructions at http://thebugfreeblog.blogspot.it/p/using-pot-builds.html

    I thank you for supporting, and for your efforts.
    I copied Qt builds to my Pi's /usr/local and qtdeps to / (root) aswell as piomxtextures_player.
    I added a newline at the end of the config.txt file at boot which is "gpu_mem=256".
    I created a new env variable, LD_LIBRARY_PATH="/qtdeps/lib/" and
    cd /
    ./piomxtextures_pocplayer /home/pi/big_buck_bunny_1080p_h264.mov
    and the output was,
    "This application failed to start because it could not find or load the Qt platform plugin "eglfs".
    Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb.
    Reinstalling the application may fix this problem.
    Aborted"
    Also tried with uri and the result was same. And also tried with "/usr/local/Qt-rasp2-5.5.0/bin/qmlscene video_position.qml file:///…/big_buck_bunny_1080p_h264.mov" and not different.

    Also I was not able to find out that env variable, QT_DEBUG_PLUGINS where is it?

    Thank you Luca,
    Sina

  11. Hello Pierre,

    If you still have this problem, it occurs because of qmake is not working without sysroot is on the proper path. In that case you need to copy your raspberry's root file system to your host machine and it should be copied on '/opt/rpi/sysroot'

  12. I published an article that explains the steps I followed to create e new image including the binaries. If you have further questions let me know, it might be useful to make it more useful.

  13. Yes, you need some packages to make it work. Use the QT_DEBUG_PLUGINS env variable to know what is missing.
    You don't need to build anything unless you want to customise/fix something. But as said, if you want to build an application that requires cross-build then mounting the Pi is practical.
    The problem with the complete image is that it requires time to upload and it is not very quick to update when new versions are available.

  14. Of course if omxplayer is not working either then it is very unlikely it works in POT. If it works there I may have a look if you can provide a license. Not sure how it can be acquired.

  15. Ah Hello Nicolas, Jan and Luca,

    I have already make my setup and tried it. But I guess this "QtMultimedia Backend" depends on some packages. And since I have deploy that setup over an clean Rasbian image, it lacks some of them. Because when I ran a command like, "piomxtextures_pocplayer file:///home/pi/Videos/H264_test1_480x360.mov" player starts but not playing the video. I have test if video has something wrong, but "omxplayer" was able to play it. So I guess it is not about the video. And since the "piomxtextures_pocplayer" able to run, I guess my Raspberry Pi 2 system lack some packages.

    Also after I quit "piomxtextures_pocplayer" program, there are some warnings over console output which says, "WARNING: No decoded frame to show at all. Let' render black."

    Luca, do you mind if I request you something? As you said you are going to write an article about how to setup an environment with hardware accelerated QtMultimedia, what about if you provide it for clean Rasbian image? So everyone who tries to have this environment can work from scratch. I am not so well exprienced with UNIX/Linux to hunt down the decoding packages for particular formats but if you able provide at least for H264 we would be able to test our environment to understand if everything works.

    I guess those are fairly much to ask you but atleast I guess it will decrease the amount of questions :).

    I will be waiting for your article. I really like to make my own player with some shiny icons over video 🙂 and have hardware support to play videos. I guess I might try to embed "omxplayer" to QWidget and put some shiny icons over that widget to control it but not sure if it is possible. Also your way is more nature than that :).

    Also this weekend I will read your blog to understand how you actually made it possible 🙂

    To Jan; ahh, I might misunderstand you Jan. What do you exactly mean with "I have raspberry mounted as root and succesfully cross compiled Qt 5.5.0 with Carlon's lib." As I thought, Luca has shared the binaries? is there a need to build them again?

    Thank you,
    Sina

  16. Hello, just note:

    instead of manipulating with raspbian image, I have mounted running rpi via sshfs, it works pretty well.
    Sometimes it needs remount (especially when installing new libs). It is pretty good for debugging.

    I have raspberry mounted as root (you need to enable root ssh login) and succesfully cross compiled Qt 5.5.0 with Carlon's lib. I can just run 'make install' when I want to try some module and test it without reboots and 'dd'…

    Hope it helps

    Jan

  17. Hello Sina:

    "Qt-rasp2-5.5.0" must be placed at "/usr/local" in your RPI, and in your local image… following Luca's tree you should mount your RPI Image at "/opt/rpi/sysroot", and therefore you sould also place "Qt-rasp2-5.5.0" at "/opt/rpi/sysroot/usr/local"

    This sysroot should be sync with your RPI in order to have all the libraries and get a successful cross-compile environment. I guess you already know this, because you said you did it with Qt5.5.1.

    About qtdeps I placed all those libraries at "/usr/", but I didn't give it a thought, maybe I could be wrong.

    "piomxtextures_pocplayer" can be placed anywhere as it is an executable file

    and finally, about doing all these in a clean rasbian image… I haven't tried it yet, but as far as I know you still need the libraries in the RPI, even if you are cross-compiling, because at runtime Qt will check for them to use them… again I could be wrong…

  18. Yes, in your current sources on github, deinterlacing is working (when I set deinterlace AUTO or FORCE), but it causes annoying framedrops (not an performance problem with CPU, that quad core is around 10% usage when playing HD stream)

    Now I discovered that it started doing the same thing in pure omxplayer, so maybe I messed up something in my raspbian (I'll dd fresh install and report any progress)

    btw are you online on some IRC or so? It is kind of slow to communicate this way 🙂 (maybe it should be public IRC)

    I'd like to solve this. Me (and probably many other people) would like to see full capabilities of omxplayer in their Qt application 🙂 (It would be fatal for my project – if I'll not manage this to work, I'll have to go for another platform, and probably much more expensive)

    Thank you for your effort !

    Jan

  19. Actually your english is better than mine… 🙂
    I'll write an article about this in the next days if I'll find the time to do it. Too many people are asking these questions. It means the setup is not trivial as I thought on new machines…

  20. Very good then. I'll provide the build soon. File anything you want on github.
    Actually I see that near that interlacing enum I placed a clear comment: "keep if off, not working". So I probably got some issue myself in the past. Were you able to make it work then? I understand in some way yes, you made it work.
    I can't guarantee much time on it, not sure how much it is. If you want I can give a try.

    Yes, sources are getting old, you're right. I need to take some time to update properly. I plan to do it soon.

  21. Hello Luca,

    Thanks for your efforts. I would like to use your build to develop Qt application for my Raspberry Pi 2.

    Actually I have already cross compiled Qt5.5.1 for my Raspbery Pi 2 but QtMultimedia player is not effectively plays videos :S. So I guess your implementation might be perfect for my purpose. But I need your guidance a bit.

    So I have downloaded 2nd package (PiOmxTextures 4.5.1 (for armv7)) which include "piomxtextures_pocplayer qtdeps and Qt-rasp2-5.5.0". I would like to ask you few questions.
    First one, I guess I need to copy "Qt-rasp2-5.5.0" tree to my host "/usr/local" tree and also to my Raspberry Pi 2 "/usr/local" ?
    Secondly, should I copy content of "qtdeps" to my Raspberry Pi 2's corresponding directory on "/usr"? I mean, "qtdeps/bin" -> "usr/bin" and "qtdeps/include" -> "usr/include" and etc. ?
    And what about "piomxtextures_pocplayer" ? Where should I move it on my Raspberry Pi 2's root tree?

    I am going to implement all of these to a clean rasbian image. would it be proper?

    And also can you please share or point an example Qt project so I can study on it to develop my own application?

    Thanks for helping
    Sina,

    I excuse for my english.

  22. I solved with the touchpad. If someone is interested:
    https://www.raspberrypi.org/forums/viewtopic.php?t=39027&f=64
    https://github.com/kergoth/tslib

    Install these packets needed for building libts:
    sudo apt-get install git automake libtool

    Clone the tslib repo, and build::
    git clone git://github.com/kergoth/tslib.git
    cd tslib
    ./autogen.sh
    ./configure
    make
    sudo make install

    Add the following to /usr/local/etc/ts.conf (ensuring all over module_raw lines are commented out):
    module_raw galax

    Note: You may have to modify the /etc/ts.conf too. (Not sure)

    Add the following to a bash script, and calibrate the touchscreen:
    #!/bin/bash
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
    export TSLIB_CONSOLEDEVICE=none
    export TSLIB_FBDEVICE=/dev/fb0
    export TSLIB_TSDEVICE=/dev/input/event0
    export TSLIB_CALIBFILE=/home/pi/pointercal
    export TSLIB_CONFFILE=/usr/local/etc/ts.conf
    export TSLIB_PLUGINDIR=/usr/local/lib/ts
    ts_calibrate

    Note: I added these exports to my .bashrc.

    Note: You may have to verify your devices. In case of errors, you have to link the library file:
    cd /usr/local/lib
    sudo ln -s libts-1.0.so.0 libts-0.0.so.0

  23. Yes, I'm playing streams from DVB-T.

    I'll be happy to test it 🙂 I can possibly record any video artifacts and provide console output.

    Or, if you want to test it yourself, I can donate you the mpeg2 license 🙂

    BTW, when do you plan to publish latest sources on github ?
    Now I'm trying to fix stream playing issues in code that is currently on github, but latest binaries seems to play way better (so it would make sense to operate with updated sources)

    Thanks for reply! Jan.

  24. It seems that recent builds somehow improved that issue of out of order frames.
    Are you playing streams coming from DVB-T/S? In that case deinterlacing may be useful… In the next build I'll add an env variable to control the deinterlacing. But you'll have to test it cause, as said, I can't.

  25. Now it plays better… but only under weird circumstances… when start playing, the picture shakes (like misordered frames). But when I put a load on network interface (eg. big load of pings), it starts playing perfect just like omxplayer.

    Thanks, Jan.

  26. I'm sorry but I do not have the license key for the mpeg2 decoder so I cannot test. However that log means that for some reason one frame was decoded but it was too late to show it.

  27. Hello,

    I'm trying to play udp/http streams using your backend (compiled from git sources). These streams are interlaced mpeg2.

    When I set deinterlace = VS_DEINTERLACEMODE_AUTO; or deinterlace = VS_DEINTERLACEMODE_FORCE; in OMXVideo.h, it deinterlaces just fine, but this message appears in console every ~1s or more and the video 'lags' when it does:

    07:50:53.328 WARNING: One frame couldn't be shown.

    (this message then appers also when playing local file)

    When I turn off deinterlacing and force my TV to play interlaced video it works just fine, but frames are missordered (i guess it plays half-frames in wrong order).

    In regular omxplayer it works perfect (when I just run omxplayer udp://… with right TV settings).

    I use slightly modified pocplayer to test this (just commented out mime-type check, so I can easily play streams and various local files)

    What am I doing wrong ?

    Thanks for any help, Jan

  28. I have started from scratch, re-downloaded and re-compiled whole sources, now it works 🙂

    now I'm trying to use this in my non-QML application which uses QtMultimedia. I hope I will figure it out 🙂

    Thanks for awesome work ! I'll be happy to see any updates.

    Jan

  29. Not sure why it segfaults, that backtrace is useless without the symbols, but I said an URI, not an absolute path. also try with the provided binaries.

  30. Thanks for reply.

    I have successfuly compiled and installed Qt with qtmultimedia patched (according to http://thebugfreeblog.blogspot.it/p/build-procedure-for-piomxtextures.html), webkit and other components included.

    But when I run pocplayer ( or my own application using qtmultimedia ) I get following error:
    pi@raspberrypi ~ $ ./piomxtextures_pocplayer filecache/VIDEO_http192168200658001getResource8.mpg
    [9;0]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).
    12:21:28.978 VERBOSE: Instantiating player service…
    12:21:28.979 VERBOSE: Instantiating QMediaService…
    12:21:28.983 DEBUG: Entering: OpenMAXILPlayerControl::OpenMAXILPlayerControl(QObject*).
    12:21:28.984 VERBOSE: Metadata update requested.
    Requesting control for org.qt-project.qt.metadatareadercontrol/5.0…
    Requesting control for org.qt-project.qt.mediaavailabilitycontrol/5.0…
    Requesting control for org.qt-project.qt.mediaplayercontrol/5.0…
    12:21:28.985 DEBUG: Entering: virtual void OpenMAXILPlayerControl::setMediaPlayer(QMediaPlayer*).
    Requesting control for org.qt-project.qt.medianetworkaccesscontrol/5.0…
    12:21:28.986 DEBUG: Entering: virtual QMediaPlayer::State OpenMAXILPlayerControl::state() const.
    12:21:28.986 DEBUG: Entering: virtual QMediaPlayer::MediaStatus OpenMAXILPlayerControl::mediaStatus() const.
    QDeclarativeAudio::itemChange
    QMediaPlayer::onItemChanged
    12:21:29.097 DEBUG: MetaData request for key: Title.
    12:21:29.097 DEBUG: MetaData request for key: SubTitle.
    12:21:29.098 DEBUG: MetaData request for key: Author.
    12:21:29.098 DEBUG: MetaData request for key: Date.
    12:21:29.099 DEBUG: MetaData request for key: AlbumTitle.
    12:21:29.099 DEBUG: MetaData request for key: AlbumArtist.
    Requesting control for org.qt-project.qt.videorenderercontrol/5.0…
    12:21:29.172 DEBUG: Entering: virtual void OpenMAXILVideoRendererControl::setSurface(QAbstractVideoSurface*).
    QDeclarativeAudio::itemChange
    QMediaPlayer::onItemChanged
    12:21:29.669 DEBUG: Renderer thread is: 0x1d9d3c0.
    12:21:30.192 INFORMATION: Showing media: filecache/VIDEO_http192168200658001getResource8.mpg.
    12:21:30.195 VERBOSE: Can't find extension for .
    12:21:30.196 VERBOSE: Can't find extension for image/jp2.
    12:21:30.197 VERBOSE: Can't find extension for image/vnd.microsoft.icon.
    12:21:30.197 VERBOSE: Can't find extension for image/x-dds.
    12:21:30.198 VERBOSE: Can't find extension for image/x-icns.
    12:21:30.199 VERBOSE: Can't find extension for image/x-mng.
    12:21:30.200 VERBOSE: Can't handle this media, sorry.

    Any ideas?

    Thanks, Jan.

  31. Download the sources provided at
    http://www.linuxfromscratch.org/blfs/view/svn/x/qt5.html

    If you use git and get the latest of qt it will download (today at least) the version Qt5.5.1, and Luca compiled Qt5.5.0 and there could be incompatibility issues as I had.

    If you still have questions about the compiling process, give a look also to https://wiki.qt.io/Building_Qt_5_from_Git, but again don't use the git sources.

    sysroot should be placed at /opt/rpi/sysroot and that for Lucas binaries go at /opt/rpi/sysroot/usr/local/

    Take a look to this instructions also: http://thebugfreeblog.blogspot.it/p/build-procedure-for-piomxtextures.html

  32. I'm sorry. I have no interest in webkit at the moment. WebKit should be included in the binaries. As for plugins, I don't know what you are referring to.

  33. Hello,
    could you provide binaries with webkit plugins compiled ? Or guide how to compile them or install from other builds ?
    Many thanks!

    Jan

  34. Hi Luca…

    Can you upload the sources of the latest binaries?
    Currently I'm working with a different version of Qt, and I also need some additional pulgins like QMySql, so I haven't been able to use your latest improvements and that for I currently have problems with stopping videos and starting another one just after.

    Thanks in advance

  35. The steps for reproducing this bug are as following:
    1.) Create a VideoOutput and load a video
    2.) Start the playback (video.play())
    3.) Pause it (video.pause())
    4.) Start it again -> this results in a crash

    Can this bug be reproduced by someone else?

  36. Hello,

    thanks for providing these binaries.
    I'd like to report a bug: I'm using POT 4.5.1 for Raspberry Pi 2 and whenever I try to pause a video the application crashes with the following error:
    /home/luca/project/pi/pi/piomxtextures_src/omxplayer_lib/OMXVideo.cpp:81: OMX_ERRORTYPE fill_buffer_done_callback(OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE*): Assertion `provider->registerFilledBuffer(pBuffer)' failed.

    The full output is provided here:

    13:17:21.091 DEBUG: Entering: virtual void OpenMAXILPlayerControl::pause().
    13:17:21.093 VERBOSE: Processing post pause()…
    13:17:21.093 DEBUG: Entering: void OpenMAXILPlayerControl::pauseInt().
    13:17:21.094 VERBOSE: Pause
    13:17:21.095 DEBUG: State changed…
    13:17:21.113 INFORMATION: Pause command issued.
    13:17:21.985 DEBUG: Entering: virtual void OpenMAXILPlayerControl::play().
    13:17:21.986 VERBOSE: Deferring play() command…
    13:17:22.001 VERBOSE: Processing post play()…
    13:17:22.001 DEBUG: Entering: void OpenMAXILPlayerControl::playInt().
    13:17:22.001 VERBOSE: Play
    13:17:22.001 VERBOSE: Cleaning textures…
    13:17:22.002 INFORMATION: Play command issued.
    13:17:22.017 DEBUG: State changed…
    13:17:22.047 WARNING: Can't register a filled buffer. None is being filled.
    qml: started playback!
    qmltest: /home/luca/project/pi/pi/piomxtextures_src/omxplayer_lib/OMXVideo.cpp:81: OMX_ERRORTYPE fill_buffer_done_callback(OMX_HANDLETYPE, OMX_PTR, OMX_BUFFERHEADERTYPE*): Assertion `provider->registerFilledBuffer(pBuffer)' failed.
    bash: line 1: 5957 Aborted DISPLAY=':0.0' /opt/qmltest/bin/qmltest
    Application finished with exit code 134.

  37. Sorry, no idea. You may try asking Qt guys. Maybe they can help, I do not know.
    Maybe something related to paths? Where did you place your sysroot? I commonly use /opt/rpi/sysroot. Maybe for some reason Qt wants the same, you can try.

  38. Hi Flosen and Luca,
    I could run the compiled player on my Raspberry Pi 2 without any problem and very good performance, however I can't use the provided Qt 5.5.0 to build my own apps.
    Could you explain how you did manage to create a working Qt Kit within Qt Creator?
    Whatever Qt Creator version I'm using, creating a kit by choosing Qt-rasp2-5.5.0/bin/qmake (or Qt-rasp2-5.5.0/bin/bin/qmake) always results by a "Qt version is not installed properly installed, please run make install".
    Any idea?

  39. PiOmxTextures was only tested on eglfs. Not sure if X11 has OpenGL support on Pi. I was never interested in this.
    You need to shut it down. Then also try evdev test to see if the touch is working properly with the drivers in the Pi. You should follow regular guides to do this, unless you see there is something different in the build I provided.

  40. I tried to run my app with "plugin -libinput". Now it works, but it needs calibration. The "export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS="rotate=180" has no effect… 🙁

  41. With your binaries, the qt programs run in an EGLFS layer. With the raspbian qt, it runs with the X11 system, I think (the touch works well here, but I don't have the video capability with omxplayer, developed by you:( ). In my opinion, the touchscreen don't want to communicate with the EGLFS layer, and communicate with the X11 layer instead…
    I mean that I touch a button in my qt app and nothing happens, but when I close the app, I can observ that the touch command was executed in the X11 layer.

  42. I do not understand what you mean by "The clicks happen below my application, open the raspbian menu, open programs, but in my qt program nothing happens".
    However does this work with the version of Qt provided by raspbian?

  43. I did not tried with earlier builds. I'm using an eGalax Touchscreen connected through usb, listed at /dev/input/event0. I also tried the following commands:
    ./TouchTest -plugin evdevtouch:/dev/input/event0; (The clicks happen below my application, open the raspbian menu, open programs, but in my qt program nothing happens)
    ./TouchTest -plugin evdevmouse:/dev/input/event0; (Appear a mouse in the screen, and i can move it, very slow, but i cannot click)
    ./TouchTest -plugin tslib:/dev/input/event0 (Appears a nessage "selected device is not a touchscreen I understand", and the touch is not working)

  44. Are you using libinput? Was it working with the 4.4.0 release of the binaries? That was running Qt 5.4. I do not have a touch device to test so I can't test anyway.

  45. Anyone tried with a touchscreen. The touch is functional with the raspbian, but dont work in the applications compiled with these binaries…

  46. So I should just copy the code onto raspberry pi ; set the ENV variables for QT and that should do the trick.
    That way I will be able to compile my program with qmake and make.

  47. ok, I will try to again 🙂

    Being new with the QT installation; I am unable to use your package for building QT for raspberrypi2.
    Can you please point me to some steps for the same

  48. Yes use that variable. Memory is needed to create front and back buffers. 4 are used at the moment. I used kununtu 15.04 64 bit. Not sure which versions can run it and which cannot.

  49. piomxtextures_pocplayer ran perfectly. But we must note that there is something problem with running piomxtextures_pocplayer, if you set GPU size default(64M). And it will show massage that "GL error: GL_OUT_OF_MEMORY'. After I extand it with 128M(my display resolution is 800X600), it ran prefectly. Maybe it depends on our display resolution.
    By the way, how can I set the audio out put by 3.5 headphone in piomxtextures_pocplayer ?
    Could I cross compile my programm by qmake in ubuntu 12.04 32bit? Does it need a high version ubuntu 15.04 64bit?

    Thank you for your help!

  50. Something like this works for me: ./piomxtextures_pocplayer file:///home/pi/big_buck_bunny_1080p_h264.mov. Try with Big Buck Bunny and see if it works for you.
    Video codec depends on the available hardware accelerated codecs: h264 is always included. For the others you'll have to check. Multiple containers are available: I tested mkv, mov, mp4, avi etc…

  51. Oh, I see. I ran qmake in Pi 2. It was my mistake. Thank you for your answer.
    By the way, I ran piomxtextures_pocplayer with the detail URI path. This issue came up also.
    Does the piomxtextures_pocplayer running need paramter such as "–loop","–animations","–seektest"?
    Could you tell me about the playing video format with hardware accelerated? H.264 .mov?

    Thanks,

  52. Are you running qmake on the Pi? It is not an ARM binary.
    piomxtextures_pocplayer sometimes requires a path to the media and some others a URI to it. Check the sources to know more.

  53. qmake:cannot execute binary file.
    export PATH= /usr/local/Qt-rasp2-5.5.0/bin:/usr/local/qtdeps/bin:$PATH.
    piomxtextures_pocplayer:
    I execute:./piomxtextures_pocplayer 720p_h264.mov
    The movite didn't display. Print below message:
    08:09:18.356 DEBUG: Renderer thread is: 0x1f066e8.
    08:09:18.842 INFORMATION: Showing media: 720p_h264.mov.
    08:09:18.846 VERBOSE: Can't find extension for .
    08:09:18.847 VERBOSE: Can't find extension for image/jp2.
    08:09:18.847 VERBOSE: Can't find extension for image/vnd.microsoft.icon.
    08:09:18.848 VERBOSE: Can't find extension for image/x-dds.
    08:09:18.849 VERBOSE: Can't find extension for image/x-icns.
    08:09:18.849 VERBOSE: Can't find extension for image/x-mng.
    08:09:18.850 DEBUG: Entering: virtual void OpenMAXILPlayerControl::stop().
    08:09:18.851 VERBOSE: Stop
    08:09:18.852 DEBUG: Entering: virtual void OpenMAXILPlayerControl::setMedia(const QMediaContent&, QIODevice*).
    08:09:18.852 DEBUG: Media: .
    08:09:18.853 DEBUG: setMedia thread is: 0x1bc68e0.
    08:09:18.855 VERBOSE: Deferring setMedia()…
    08:09:18.855 DEBUG: Entering: virtual void OpenMAXILPlayerControl::play().
    08:09:18.855 VERBOSE: Deferring play() command…
    08:09:18.971 VERBOSE: Processing post setMedia()…
    08:09:18.971 DEBUG: Entering: void OpenMAXILPlayerControl::setMediaInt(const QMediaContent&).
    08:09:18.971 VERBOSE: Stop
    08:09:18.971 VERBOSE: Entering: bool OMX_MediaProcessor::setFilenameInt(QString, OMX_TextureData*&).
    08:09:18.971 VERBOSE: Opening …
    08:09:19.056 ERROR: Failed to open source .

    Best regrads,

  54. Hi Luca,
    I download PiOmxTextures 4.5.1, and paste Qt-rasp(2)-5.5.0 and qtdeps in /usr/local. And then register the PATH and LD_LIBRARY_PATH. I found that qmake and piomxtextures_pocplayer didn't work, but the expample worked well. How would I used the PiOmxTextures 4.5.1 binaries?

    Would be very glad if you had a clue.

    Thanks,
    King Chen

  55. Hello, yes, if you need the gstreamer plugins you can find those in that directory. I had to place it there to avoid the loading procedure to select the gstreamer video plugin instead of the OpenMAX one.
    For the rest I'm sorry, I didn't test anything related to the camera. This build of Qt 5.5.0 is now using gstreamer 1.0 while 5.4.1 was probably still using gstreamer 0.10. Try with another 5.5.0 build of Qt and see if it works there. Not sure if my patch broke something related to the camera, it seems unlikely though.

  56. Might be of interest: I copied the binaries from plugins/mediaservice/gstreamer one level up. The camera does work now
    But when I do some work on the main thread (calling an external program), the camera gets stuck with:

    CameraBin error: "Internal data flow error."

    With the 5.4.1 stack I got messages like:
    – virtual bool QSGVideoItemSurface::present(const QVideoFrame&) I'm getting bad frames here…
    – Rendering video frame to deleted surface, skip the frame
    but the camera never got stuck.

  57. Hi Luca,

    thanks a lot for this 5.5 build!
    I managed to create a working kit configuration, but there's a problem with my Camera in Qml:

    defaultServiceProvider::requestService(): no service found for – "org.qt-project.qt.camera"
    qml: Camera Error: The camera service is missing

    – libgstreamer1.0-dev is installed – do I have to remove gstreamer libs?
    – copying plugins/mediaservice to binary directory does not change anything

    Would be very glad if you had a clue.

    Best regards!
    Florian

  58. Hi! I put the Qt-rasp(2)-5.5.0 to /usr/local/Qt-rasp(2)-5.5.0, and configured the Qt Creator according to this article https://wiki.qt.io/RaspberryPi_Beginners_Guide (Tool Chain, Qt version (/opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.0/bin/bin/qmake), kits) and i'm having some errors:
    – Qt version not properly installed – at the Qt Versions section
    – Project ERROR: CROSS_COMPILE needs to be set via -device-option CROSS_COMPILE=
    Could not read qmake configuration file /opt/rpi/sysroot/usr/local/Qt-rasp2-5.5.0/mkspecs/devices/linux-rasp-pi2-g++/qmake.conf. – at the Kits section

    The qmake.conf exists in the location mentioned above…

Leave a Reply

Your email address will not be published. Required fields are marked *