GNOME Bugzilla – Bug 797244
Compilation error: GST_TYPE_GL_STEREO_DOWNMIX undeclared
Last modified: 2018-10-03 20:34:28 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
This seems to be some problem with autotools. Does it still happen after "git clean -fdx" in gst-plugins-base?
(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
*** Bug 797245 has been marked as a duplicate of this bug. ***
This issue was originally discovered in our CI. We use pristine Docker container and source code for all compilation targets.
Does gst-plugins-base/gst-libs/gst/gl/gl-enumtypes.h and .c exist, and what does the header contain?
(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__ */
(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.
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.
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