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 797244 - Compilation error: GST_TYPE_GL_STEREO_DOWNMIX undeclared
Compilation error: GST_TYPE_GL_STEREO_DOWNMIX undeclared
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal critical
: 1.15.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
: 797245 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2018-10-03 19:31 UTC by U. Artie Eoff
Modified: 2018-10-03 20:34 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description U. Artie Eoff 2018-10-03 19:31:51 UTC
Compilation fails since the following commits:

commit c5b78fdc9326bce723f4d56edade1cfff8c61fb5 (HEAD -> master, origin/master, origin/HEAD)
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Oct 3 14:49:32 2018 +0300

    gl: Rename GST_TYPE_GL_STEREO_DOWNMIX GType macro everywhere
    
    The old one still exists but behind GST_DISABLE_DEPRECATED

commit 2b4dfb994124b205b9e451f64c62731fb9298dc2
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Oct 3 13:06:42 2018 +0300

    gl: Generate enum GTypes via glib-mkenums
    
    https://bugzilla.gnome.org/show_bug.cgi?id=797240
    https://bugzilla.gnome.org/show_bug.cgi?id=797144

Error Output:

gstglviewconvert.c: In function 'gst_gl_view_convert_class_init':
gstglviewconvert.c:265:11: error: 'GST_TYPE_GL_STEREO_DOWNMIX' undeclared (first use in this function)
           GST_TYPE_GL_STEREO_DOWNMIX, DEFAULT_DOWNMIX,
           ^
gstglviewconvert.c:265:11: note: each undeclared identifier is reported only once for each function it appears in
Makefile:1166: recipe for target 'libgstgl_1.0_la-gstglviewconvert.lo' failed

Additional Details:

Oddly, I do not see this error on Fedora 28 (gcc 8.1.1) or Ubuntu Bionic (gcc 7.3.0) environment (although, gst-plugins-bad compile is broken now).  I do see this error in Fedora 27 (gcc 7.3.1) and Ubuntu Xenial (gcc 5.4.0) environments.

My configure step is:

./autogen.sh --disable-silent-rules --prefix="/opt/media/install" --disable-gtk-doc --disable-examples --disable-fatal-warnings
Comment 1 Sebastian Dröge (slomo) 2018-10-03 19:47:58 UTC
This seems to be some problem with autotools. Does it still happen after "git clean -fdx" in gst-plugins-base?
Comment 2 U. Artie Eoff 2018-10-03 19:52:46 UTC
(In reply to Sebastian Dröge (slomo) from comment #1)
> This seems to be some problem with autotools. Does it still happen after
> "git clean -fdx" in gst-plugins-base?

Yes
Comment 3 Sebastian Dröge (slomo) 2018-10-03 19:52:56 UTC
*** Bug 797245 has been marked as a duplicate of this bug. ***
Comment 4 U. Artie Eoff 2018-10-03 19:54:51 UTC
This issue was originally discovered in our CI.  We use pristine Docker container and source code for all compilation targets.
Comment 5 Sebastian Dröge (slomo) 2018-10-03 19:55:12 UTC
Does gst-plugins-base/gst-libs/gst/gl/gl-enumtypes.h and .c exist, and what does the header contain?
Comment 6 U. Artie Eoff 2018-10-03 20:00:07 UTC
(In reply to Sebastian Dröge (slomo) from comment #5)
> Does gst-plugins-base/gst-libs/gst/gl/gl-enumtypes.h and .c exist, and what
> does the header contain?

Yes. The header contains:

#ifndef __GST_GL_ENUM_TYPES_H__
#define __GST_GL_ENUM_TYPES_H__

#include <gst/gst.h>
#include <gst/gl/gl-prelude.h>
G_BEGIN_DECLS

/* enumerations from "gstglwindow.h" */
GST_GL_API
GType gst_gl_window_error_get_type (void);
#define GST_TYPE_GL_WINDOW_ERROR (gst_gl_window_error_get_type())

/* enumerations from "gstgldisplay.h" */
GST_GL_API
GType gst_gl_display_type_get_type (void);
#define GST_TYPE_GL_DISPLAY_TYPE (gst_gl_display_type_get_type())

/* enumerations from "gstglcontext.h" */
GST_GL_API
GType gst_gl_context_error_get_type (void);
#define GST_TYPE_GL_CONTEXT_ERROR (gst_gl_context_error_get_type())

/* enumerations from "gstglbasememory.h" */
GST_GL_API
GType gst_gl_base_memory_error_get_type (void);
#define GST_TYPE_GL_BASE_MEMORY_ERROR (gst_gl_base_memory_error_get_type())
GST_GL_API
GType gst_gl_base_memory_transfer_get_type (void);
#define GST_TYPE_GL_BASE_MEMORY_TRANSFER (gst_gl_base_memory_transfer_get_type())

/* enumerations from "gstglformat.h" */
GST_GL_API
GType gst_gl_format_get_type (void);
#define GST_TYPE_GL_FORMAT (gst_gl_format_get_type())

/* enumerations from "gstglsl.h" */
GST_GL_API
GType gst_glsl_error_get_type (void);
#define GST_TYPE_GLSL_ERROR (gst_glsl_error_get_type())
GST_GL_API
GType gst_glsl_version_get_type (void);
#define GST_TYPE_GLSL_VERSION (gst_glsl_version_get_type())
GST_GL_API
GType gst_glsl_profile_get_type (void);
#define GST_TYPE_GLSL_PROFILE (gst_glsl_profile_get_type())

/* enumerations from "gstglupload.h" */
GST_GL_API
GType gst_gl_upload_return_get_type (void);
#define GST_TYPE_GL_UPLOAD_RETURN (gst_gl_upload_return_get_type())

/* enumerations from "gstglapi.h" */
GST_GL_API
GType gst_glapi_get_type (void);
#define GST_TYPE_GLAPI (gst_glapi_get_type())
GST_GL_API
GType gst_gl_platform_get_type (void);
#define GST_TYPE_GL_PLATFORM (gst_gl_platform_get_type())

/* enumerations from "gstglviewconvert.h" */
GST_GL_API
GType struct_struct_get_type (void);
#define GST_TYPE_STRUCT (struct_struct_get_type())

/* enumerations from "gstglquery.h" */
GST_GL_API
GType gst_gl_query_type_get_type (void);
#define GST_TYPE_GL_QUERY_TYPE (gst_gl_query_type_get_type())

/* enumerations from "gstgl_enums.h" */
GST_GL_API
GType gst_gl_texture_target_get_type (void);
#define GST_TYPE_GL_TEXTURE_TARGET (gst_gl_texture_target_get_type())
G_END_DECLS

#endif /* __GST_GL_ENUM_TYPES_H__ */
Comment 7 Sebastian Dröge (slomo) 2018-10-03 20:02:20 UTC
(In reply to U. Artie Eoff from comment #6)
>
> /* enumerations from "gstglviewconvert.h" */
> GST_GL_API
> GType struct_struct_get_type (void);
> #define GST_TYPE_STRUCT (struct_struct_get_type())

Your glib-mkenums is broken, I assume this is with GLib 2.54.x? That version had a couple of bugs that were fixed in never versions and that did not exist in 2.52.
Comment 8 Sebastian Dröge (slomo) 2018-10-03 20:19:31 UTC
This fixes the problem in -base with older glib-mkenums

commit 2b0298d847348af4699cc44a4d5c82ad519a932a (HEAD -> master, origin/master, origin/HEAD)
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Oct 3 23:17:56 2018 +0300

    glviewconvert: Create an anonymous enum for GstGLStereoDownmix
    
    Older glib-mkenums completely fails to parse it otherwise.
Comment 9 Sebastian Dröge (slomo) 2018-10-03 20:34:28 UTC
And

commit 919083d082e71e5956df4e1dbf873f663a18caa9 (HEAD -> master, origin/master, origin/HEAD)
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Oct 3 23:27:32 2018 +0300

    gl: Add gl-enumtypes.h to nodist_HEADERS