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 , 8 months ago
comment:2 by , 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 , 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 , 8 months ago
| Owner: | changed from to |
|---|---|
| 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 , 8 months ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
Fixed at 2ed68211b3.
sed provided by Doug.

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?