embedded-linuxyoctogdkgdkpixbuf

Issue with gdkpixbuff


I'm working on a iMX6, with Yocto, and I'm trying to use a Gstreamer plugin : gdkpixbufoverlay on my board, but I got the following error:

gst-launch-1.0 autovideosrc ! gdkpixbufoverlay location=image.png ! autovideosink

(gst-launch-1.0:441): GdkPixbuf-WARNING **: Cannot open pixbuf loader module file '/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstGdkPixbufOverlay:gdkpixbufoverlay0: Could not load overlay image.
Additional debug info:
../../../gst-plugins-good-1.6.3/ext/gdk_pixbuf/gstgdkpixbufoverlay.c(508): gst_gdk_pixbuf_overlay_start (): /GstPipeline:pipeline0/GstGdkPixbufOverlay:gdkpixbufoverlay0:
Couldn't recognize the image file format for file 'image.png'
Setting pipeline to NULL ...
Freeing pipeline ...

So I tried to run the command advised, but I did not work either. I took a look at the output:

/usr/lib/gdk-pixbuf-2.0/gdk-pixbuf-query-loaders 
# GdkPixbuf Image Loader Modules file
# Automatically generated file, do not edit
# Created by gdk-pixbuf-query-loaders from gdk-pixbuf-2.32.3
#
# LoaderDir = /usr/lib/gdk-pixbuf-2.0/2.10.0/loaders
#

And the output is full of comments. I think something is wrong on my board but I can't find where.

Did I need some other packages to make gdkpixbuf work? I tested on Poky distribution, on krogoth and pyro branch, and the result is the same.


Solution

  • Add to your recipe (the image-YOUR_RECIPE_NAME.bb file) the necessary package and sub-packages names as rows. In my case the package got split, so in order to use PNG and JPEG image overlays, my recipe looks like the following:

    ...
    gdk-pixbuf \
    gdk-pixbuf-loader-png \
    gdk-pixbuf-loader-jpeg \
    ...
    

    After saving the changes, don't forget to bitbake it:

    bitbake image-YOUR_RECIPE_NAME