Opened 8 months ago

Closed 8 months ago

#22767 closed defect (fixed)

vlc FTBFS with gstreamer

Reported by: Joe Locash Owned by: Douglas R. Reno
Priority: normal Milestone: 13.0
Component: BOOK Version: git
Severity: medium Keywords:
Cc:

Description

The update to gstreamer-1.28.0 breaks vlc. gst isn't mentioned in the page for vlc but I think it's one of its plugins. To work around it I used --disable-gst-decode with configure.

Change History (5)

comment:1 by Bruce Dubbs, 8 months ago

vlc-3.0.23 builds fine with gstreamer-1.26.8

I notice in vlc's configure:

--enable-gst-decode GStreamer based decoding support (currently supports only video decoding) (default auto)

The vlc problem file appears to be modules/codec/gstreamer/gstdecode.c

Can you post the error message?

comment:2 by Joe Locash, 8 months ago

  CC       codec/gstreamer/libgstdecode_plugin_la-gstvlcvideopool.lo
In file included from /usr/include/glib-2.0/gobject/gobject.h:26,
                 from /usr/include/glib-2.0/gobject/gbinding.h:31,
                 from /usr/include/glib-2.0/glib-object.h:24,
                 from /usr/include/gstreamer-1.0/gst/gstminiobject.h:28,
                 from /usr/include/gstreamer-1.0/gst/gstbufferpool.h:26,
                 from codec/gstreamer/gstvlcvideopool.h:30,
                 from codec/gstreamer/gstvlcvideopool.c:27:
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:53:24: error: unknown type name ‘GstVideoBufferPoolClass’; did you mean ‘GstBufferPoolClass’?
   53 |     VIDEO_DMABUF_POOL, GstVideoBufferPool)
      |                        ^~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1612:20: note: in definition of macro ‘G_DECLARE_FINAL_TYPE’
 1612 |   typedef struct { ParentName##Class parent_class; } ModuleObjName##Class;                               \
      |                    ^~~~~~~~~~
In file included from /usr/lib/glib-2.0/include/glibconfig.h:9,
                 from /usr/include/glib-2.0/glib/gtypes.h:34,
                 from /usr/include/glib-2.0/glib/galloca.h:34,
                 from /usr/include/glib-2.0/glib.h:32,
                 from /usr/include/gstreamer-1.0/gst/gstconfig.h:51,
                 from /usr/include/gstreamer-1.0/gst/gstminiobject.h:26:
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h: In function ‘glib_autoptr_clear_GstVideoDmabufPool’:
/usr/include/glib-2.0/glib/gmacros.h:1343:49: error: ‘glib_autoptr_clear_GstVideoBufferPool’ undeclared (first use in this function); did you mean ‘glib_autoptr_clear_GstBufferPool’?
 1343 | #define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
      |                                                 ^~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1361:18: note: in definition of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1361 |     { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
      |                  ^~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1374:65: note: in expansion of macro ‘_GLIB_AUTOPTR_CLEAR_FUNC_NAME’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1343:49: note: each undeclared identifier is reported only once for each function it appears in
 1343 | #define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
      |                                                 ^~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1361:18: note: in definition of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1361 |     { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
      |                  ^~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1374:65: note: in expansion of macro ‘_GLIB_AUTOPTR_CLEAR_FUNC_NAME’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:53:24: error: ‘GstVideoBufferPool’ undeclared (first use in this function); did you mean ‘GstVideoBufferFlags’?
   53 |     VIDEO_DMABUF_POOL, GstVideoBufferPool)
      |                        ^~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1361:29: note: in definition of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1361 |     { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
      |                             ^~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1361:41: error: expected expression before ‘)’ token
 1361 |     { if (_ptr) (cleanup) ((ParentName *) _ptr); }                                                              \
      |                                         ^
/usr/include/glib-2.0/glib/gmacros.h:1374:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h: In function ‘glib_autoptr_destroy_GstVideoDmabufPool’:
/usr/include/glib-2.0/glib/gmacros.h:1343:49: error: ‘glib_autoptr_clear_GstVideoBufferPool’ undeclared (first use in this function); did you mean ‘glib_autoptr_clear_GstBufferPool’?
 1343 | #define _GLIB_AUTOPTR_CLEAR_FUNC_NAME(TypeName) glib_autoptr_clear_##TypeName
      |                                                 ^~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1365:8: note: in definition of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1365 |     { (cleanup) ((ParentName *) _ptr); }                                                                        \
      |        ^~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1374:65: note: in expansion of macro ‘_GLIB_AUTOPTR_CLEAR_FUNC_NAME’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |                                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:53:24: error: ‘GstVideoBufferPool’ undeclared (first use in this function); did you mean ‘GstVideoBufferFlags’?
   53 |     VIDEO_DMABUF_POOL, GstVideoBufferPool)
      |                        ^~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1365:19: note: in definition of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1365 |     { (cleanup) ((ParentName *) _ptr); }                                                                        \
      |                   ^~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1365:31: error: expected expression before ‘)’ token
 1365 |     { (cleanup) ((ParentName *) _ptr); }                                                                        \
      |                               ^
/usr/include/glib-2.0/glib/gmacros.h:1374:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/glib/gmacros.h:1364:85: warning: unused parameter ‘_ptr’ [-Wunused-parameter]
 1364 |   static G_GNUC_UNUSED inline void _GLIB_AUTOPTR_DESTROY_FUNC_NAME(TypeName) (void *_ptr)                       \
      |                                                                               ~~~~~~^~~~
/usr/include/glib-2.0/glib/gmacros.h:1374:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS’
 1374 |   _GLIB_DEFINE_AUTOPTR_CLEANUP_FUNCS(ModuleObjName, ParentName, _GLIB_AUTOPTR_CLEAR_FUNC_NAME(ParentName))
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/glib-2.0/gobject/gtype.h:1614:3: note: in expansion of macro ‘_GLIB_DEFINE_AUTOPTR_CHAINUP’
 1614 |   _GLIB_DEFINE_AUTOPTR_CHAINUP (ModuleObjName, ParentName)                                               \
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/gstreamer-1.0/gst/video/gstvideodmabufpool.h:52:1: note: in expansion of macro ‘G_DECLARE_FINAL_TYPE’
   52 | G_DECLARE_FINAL_TYPE (GstVideoDmabufPool, gst_video_dmabuf_pool, GST,
      | ^~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:22818: codec/gstreamer/libgstdecode_plugin_la-gstvlcvideopool.lo] Error 1
make[4]: Leaving directory '/tmp/vlc-3.0.23/modules'
make[3]: *** [Makefile:28438: all-recursive] Error 1
make[3]: Leaving directory '/tmp/vlc-3.0.23/modules'
make[2]: *** [Makefile:12975: all] Error 2
make[2]: Leaving directory '/tmp/vlc-3.0.23/modules'
make[1]: *** [Makefile:1563: all-recursive] Error 1
make[1]: Leaving directory '/tmp/vlc-3.0.23'
make: *** [Makefile:1450: all] Error 2

comment:3 by Bruce Dubbs, 8 months ago

Wow. I really don't like all those macros. Really makes it difficult to understand what is going on.

I'll try to take a look at it tomorrow. I really don't know if we need GStreamer based decoding support or not.

comment:4 by Douglas R. Reno, 8 months ago

Owner: changed from blfs-book to Douglas R. Reno
Status: new → assigned

Bruce has asked me to take a look at this, so I'm going to take this ticket! I have a general idea of what's going on here, this looks like a gstreamer regression that's causing includes to occur in the wrong order.

comment:5 by Joe Locash, 8 months ago

Resolution: → fixed
Status: assigned → closed

Fixed at 2ed68211b3.

sed provided by Doug.

Note: See TracTickets for help on using tickets.