After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 733263 - Building gst-plugins-good-1.0 from cerbero fail
Building gst-plugins-good-1.0 from cerbero fail
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: packages
1.x
Other Linux
: Normal major
: 1.2.5
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-07-16 15:25 UTC by lestoilfante
Modified: 2014-07-29 17:13 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description lestoilfante 2014-07-16 15:25:30 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
Comment 1 Andres 2014-07-29 15:11:52 UTC
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.
Comment 2 Nicolas Dufresne (ndufresne) 2014-07-29 17:00:45 UTC
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).
Comment 3 Nicolas Dufresne (ndufresne) 2014-07-29 17:04:24 UTC
Sorry, my bad, multiplanar support is 1.4 only, this is backport error.
Comment 4 Nicolas Dufresne (ndufresne) 2014-07-29 17:13:42 UTC
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