GNOME Bugzilla – Bug 733263
Building gst-plugins-good-1.0 from cerbero fail
Last modified: 2014-07-29 17:13:42 UTC
Kernel Linux voyage 2.6.32-voyage #1 PREEMPT Mon Jan 17 07:48:25 GMT 2011 i686 GNU/Linux Building fail with following error gstv4l2object.c: In function 'gst_v4l2_object_set_format': gstv4l2object.c:2384: error: 'union <anonymous>' has no member named 'pix_mp' gstv4l2object.c:2385: error: 'union <anonymous>' has no member named 'pix_mp' make[3]: *** [libgstvideo4linux2_la-gstv4l2object.lo] Error 1 make[3]: Leaving directory `/home/emmanuele/cerbero/sources/linux_x86/gst-plugins-good-1.0-1.2/sys/v4l2' make[2]: *** [v4l2] Error 2 make[2]: Leaving directory `/home/emmanuele/cerbero/sources/linux_x86/gst-plugins-good-1.0-1.2/sys' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/emmanuele/cerbero/sources/linux_x86/gst-plugins-good-1.0-1.2' make: *** [all] Error 2 ***** Error running 'build' command: Recipe 'gst-plugins-good-1.0' failed at the build step 'compile' To reproduce the error > -git clone -b 1.2 git://anongit.freedesktop.org/gstreamer/sdk/cerbero > -./cerbero-uninstalled bootstrap > -./cerbero-uninstalled package gstreamer-1.0
This bug still exist and I can confirm as well. System info: Ubuntu 12.04 LTS 32bit (VM using VMWare workstation 8) Kernel version 3.11.0-26 generic Steps performed which led to error: git clone -b 1.2 git://anongit.freedesktop.org/gstreamer/sdk/cerbero cerbero bootstrap cerbero config/cross-android.cbc bootstrap cerbero config/cross-android.cbc package gstreamer-1.0 gstv4l2object.c: In function 'gst_v4l2_object_set_format': gstv4l2object.c:2384: error: 'union <anonymous>' has no member named 'pix_mp' gstv4l2object.c:2385: error: 'union <anonymous>' has no member named 'pix_mp' make[3]: *** [libgstvideo4linux2_la-gstv4l2object.lo] Error 1 make[3]: Leaving directory A quick fix is open gstv4l2object.c and just replace pix_mp to pix as shown below: /* If no size in caps, use configured size */ if (width == 0 && height == 0) { width = format.fmt.pix_mp.width; height = format.fmt.pix_mp.height; } change to /* If no size in caps, use configured size */ if (width == 0 && height == 0) { width = format.fmt.pix.width; height = format.fmt.pix.height; } This should fix this bug, but it should be updated in the code in git.
There is already a define for that, what you have to do is make sure the code in using multi-plane API is ifdef in that case. This is fixed in 1.4 by not using system header anymore (the code was getting hairy, and v4l2 API has not version to help).
Sorry, my bad, multiplanar support is 1.4 only, this is backport error.
commit e0417c28d56ac64a2e8d149bbaf812d2ce227153 Author: Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> Date: Tue Jul 29 13:06:16 2014 -0400 v4l2object: Don't use mplane API This API isn't supported in 1.2, and should not be used. This didn't cause any issue on recent header because the first few fields of the union are the same. https://bugzilla.gnome.org/show_bug.cgi?id=733263