Qt World Summit: Register Today!

Qt 5.4.0 - QtMultimedia Camera Example not working on BeagleBone Black

  • Hi all,

    I have a BeagleBone Black I am running Linux 3.8.13 with gstreamer-0.10.36 and Qt 5.4.0. I am trying to get the sample camera application from qt-everywhere-opensource-src/5.4.0/qtmultimedia/examples running. I had no errors cross-building but when I run the application on the board I get the following errors:

    beaglebone:~# ./camera -platform linuxfb -plugin evdevtouch:/dev/input/touchscreen0
    ** (camera:239): CRITICAL **: gst_photography_set_focus_mode: assertion 'photo != NULL' failed
    This plugin does not support setParent!
    (camera:239): GStreamer-CRITICAL **: gst_caps_unref: assertion 'caps != NULL' failed
    ** (camera:239): CRITICAL **: gst_missing_encoder_message_new: assertion '!gst_caps_is_any (encode_caps)' failed
    (camera:239): GStreamer-CRITICAL **: gst_element_post_message: assertion 'message != NULL' failed
    CameraBin error: "Your GStreamer installation is missing a plug-in."

    I have validated the camera using Gstreamer pipelines (using v4l2src and fbdevsink to sink to the display). So I know the camera is working.

    I have built in almost all plugins from Gstreamer base/good/bad:

    beaglebone:~# gst-inspect-0.10
    Total count: 181 plugins (1 blacklist entry not shown), 1028 features

    And validated the camerabin plugins are there from plugins-bad:

    beaglebone:~# gst-inspect-0.10 | grep camera
    camerabin2:  viewfinderbin: Viewfinder Bin
    camerabin2:  wrappercamerabinsrc: V4l2 camera src element for camerabin
    camerabin2:  camerabin2: CameraBin2
    camerabin:  camerabin: Camera Bin
    bayer:  bayer2rgb: Bayer to RGB decoder for cameras

    The only blacklist plugin is the vorbisdec plugin due to a conflict in the GstVorbisDec class set by the vorbis and tremor plugins (http://lists.freedesktop.org/archives/gstreamer-bugs/2012-April/089483.html). That should not be relevant to this error though.

    I have also validated that the photography library exists and there are no missing dependencies:

    beaglebone:/usr/lib# ll libgstphoto*
    -rwxr-xr-x 1 root root  1383 Mar 12 19:42 libgstphotography-0.10.la
    lrwxrwxrwx 1 root root    32 Mar 12 19:42 libgstphotography-0.10.so -> libgstphotography-0.10.so.23.0.0
    lrwxrwxrwx 1 root root    32 Mar 12 19:42 libgstphotography-0.10.so.23 -> libgstphotography-0.10.so.23.0.0
    -rwxr-xr-x 1 root root 20028 Mar 12 19:42 libgstphotography-0.10.so.23.0.0
    beaglebone:/usr/lib# ldd libgstphotography-0.10.so
        libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0xb6e29000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb6ddc000)
        libffi.so.6 => /usr/lib/libffi.so.6 (0xb6dcf000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb6dc3000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb6dba000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb6ca4000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6c84000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb6bb0000)
        libdl.so.2 => /lib/libdl.so.2 (0xb6ba4000)
        libz.so.1 => /lib/libz.so.1 (0xb6b8d000)
        libm.so.6 => /lib/libm.so.6 (0xb6b1b000)
        libc.so.6 => /lib/libc.so.6 (0xb69e3000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb69ca000)
        /lib/ld-linux-armhf.so.3 (0xb6ee6000)

    Any ideas?