wdh
Posts: 7
Joined: Mon Jun 15, 2020 3:35 am

Fail building Gstreamer 1.20.0 or 1.18.5 on 32bit - unknown type name ‘EGL_DISPMANX_WINDOW_T’

Sat Feb 05, 2022 1:14 am

See https://gitlab.freedesktop.org/gstreame ... issues/952 - this issue repros on both versions. There is a (locked) thread that indicates that a needed include is missing on the 64bit version, and follows on to note that the RPi4 doesn't use these systems.

Full error at the link above, but happy to dup if you think it helps. What is the right workaround here?

Linux raspberrypi 5.10.92-v7l+ #1514 SMP Mon Jan 17 17:38:03 GMT 2022 armv7l GNU/Linux
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"

333 FAILED: gst-libs/gst/gl/libgstgl-1.0.so.0.1804.0.p/egl_gstglcontext_egl.c.o
334 cc -Igst-libs/gst/gl/libgstgl-1.0.so.0.1804.0.p -I. -I.. -Igst-libs -I../gst-libs -Isubprojects/gl-headers/abyss -I../subprojects/gl-headers/abyss -Isubprojects/gl-headers/wglext -I../subprojects/gl-headers/wglext -Igst-libs/gst/gl -Igst-libs/gst/video -I/usr/include/gstreamer-1.0 -I/usr/include/arm-linux-gnueabihf -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -I/usr/include/orc-0.4 -I/usr/include/interface/vmcs_host/linux -I/usr/include/interface/vcos/pthreads -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_CAST_CHECKS -Wmissing-declarations -Wredundant-decls -Wundef -Wwrite-strings -Wformat -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar -Wvla -Wpointer-arith -Wmissing-prototypes -Wdeclaration-after-statement -Wno-unused -fPIC -DUSE_VCHIQ_ARM -pthread -DHAVE_CONFIG_H -DUSE_EGL_RPI -DBUILDING_GST_GL -MD -MQ gst-libs/gst/gl/libgstgl-1.0.so.0.1804.0.p/egl_gstglcontext_egl.c.o -MF gst-libs/gst/gl/libgstgl-1.0.so.0.1804.0.p/egl_gstglcontext_egl.c.o.d -o gst-libs/gst/gl/libgstgl-1.0.so.0.1804.0.p/egl_gstglcontext_egl.c.o -c ../gst-libs/gst/gl/egl/gstglcontext_egl.c
335 In file included from ../gst-libs/gst/gl/egl/gstglcontext_egl.c:37:
336 ../gst-libs/gst/gl/egl/gstegl.h:35:9: warning: bad option '-fgnu89-inline' to pragma 'optimize' [-Wpragmas]
337 35 | #pragma GCC optimize ("gnu89-inline")
338 | ^~~
339 In file included from ../gst-libs/gst/gl/egl/gstglcontext_egl.c:52:
340 ../gst-libs/gst/gl/egl/../dispmanx/gstglwindow_dispmanx_egl.h:35:9: warning: bad option '-fgnu89-inline' to pragma 'optimize' [-Wpragmas]
341 35 | #pragma GCC optimize ("gnu89-inline")
342 | ^~~
343 In file included from ../gst-libs/gst/gl/egl/gstglcontext_egl.c:52:
344 ../gst-libs/gst/gl/egl/../dispmanx/gstglwindow_dispmanx_egl.h:66:3: error: unknown type name 'EGL_DISPMANX_WINDOW_T'
345 66 | EGL_DISPMANX_WINDOW_T native;
346 | ^~~~~~~~~~~~~~~~~~~~~
347 ../gst-libs/gst/gl/egl/../dispmanx/gstglwindow_dispmanx_egl.h:67:3: error: unknown type name 'EGL_DISPMANX_WINDOW_T'
348 67 | EGL_DISPMANX_WINDOW_T foreign;
349 | ^~~~~~~~~~~~~~~~~~~~~
350 ninja: build stopped: subcommand failed.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 13013
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: Fail building Gstreamer 1.20.0 or 1.18.5 on 32bit - unknown type name ‘EGL_DISPMANX_WINDOW_T’

Sat Feb 05, 2022 8:31 pm

-DUSE_EGL_RPI is invalid with 64bit architectures.

https://github.com/GStreamer/gst-plugin ... build#L235
implies gl_winsys wants to not be set to "auto", and probably wants to be "egl".

Or ideally the logic in https://github.com/GStreamer/gst-plugin ... build#L394 wants to be a bit smarter than just looking for bcm_host.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

wdh
Posts: 7
Joined: Mon Jun 15, 2020 3:35 am

Re: Fail building Gstreamer 1.20.0 or 1.18.5 on 32bit - unknown type name ‘EGL_DISPMANX_WINDOW_T’

Mon Feb 07, 2022 3:05 am

Thanks. Yes, after much fiddling (you'd honestly think the default would work), that seemed to help. At least it builds now.

fduncanh
Posts: 5
Joined: Mon Mar 14, 2022 8:45 pm

also on 64bit Re: Fail building Gstreamer 1.20.0 or 1.18.5 on 32bit - unknown type name ‘EGL_DISPMANX_WINDOW_T’

Wed Jun 08, 2022 4:51 pm

Trying to build GStreamer 1.21 (development) on R Pi OS (bullseye) Lite 64bit.

also fails to build gst-plugins-base because of this EGL_DISPMANX_WINDOW_T error.



is there a workaround?

EDIT: from 6by9's reply, I worked out that the solution for avoiding the EGL_DISPMANX_ error on a 64-bit R Pi OS system turns out to be to replace

```
meson build
```
with

```
meson build -Dgst-plugins-base:gl_winsys=egl
```

(assuming that you want to build for the egl gl -windowing system.)

The default is "gl_winsys=auto" which seems to pickup up dispmanx by mistake.

choices for the gl_winsys option: : ['x11', 'wayland', 'win32', 'winrt', 'cocoa', 'dispmanx', 'egl', 'viv-fb', 'gbm', 'android', 'auto'],

description : 'A comma separated list of opengl windows systems to enable building against. Supported values are x11, wayland, win32, winrt, cocoa, dispmanx, egl, viv-fb, gbm, and android')

Just make sure its not "auto", and your list doesn't include dispmanx
Edited by fduncanh just now

bakwon
Posts: 1
Joined: Wed Jan 15, 2020 10:49 pm

Re: Fail building Gstreamer 1.20.0 or 1.18.5 on 32bit - unknown type name ‘EGL_DISPMANX_WINDOW_T’

Wed Jun 22, 2022 3:00 pm

I faced this problem too when building gst-plugins-base 1.18.
The work around described by fduncanh did not work.
The meson option should be specified as:

meson build -Dgl_winsys=egl
NOT
meson build -Dgst-plugins-base:gl_winsys=egl

Return to “Graphics programming”