GNOME Bugzilla – Bug 703342
gl: implement support for DispManX (Raspberry Pi)
Last modified: 2014-04-30 13:51:54 UTC
We would need DispManX (Raspberry Pi) support in gst-plugins-gl, which uses EGL/GLESv2. This would use the DispManX API to create windows.
Related to that EGLImage support would also be useful for integration with the decoders, different bug for that. Main problem here is that we better need to differentiate between offscreen and display windows. We can't just create DispManX windows for every GL context we create, just for the ones that are in a sink. Related to that the same problem exists in Android too.
Initial support here: http://cgit.freedesktop.org/gstreamer/gst-plugins-gl/commit/?id=3448791e5aca86d2e912a145d24f60fde2dd3bbf
Config flags: ./configure --disable-x11 --disable-wayland --enable-dispmanx
The gstglcontext.c change looks rather suspicious imho, at least warrants a comment. And you need to call bcm_init() somewhere before everything else.
(In reply to comment #2) > Initial support here: > http://cgit.freedesktop.org/gstreamer/gst-plugins-gl/commit/?id=3448791e5aca86d2e912a145d24f60fde2dd3bbf What? we can't link against libEGL and libGLESv2? That seems...weird. Also, probably should have gone down the pkg-config path first... Also what's with 0bdb6d4af3bdac05c53869a6b42a25b6ec8afcb ? Some of the desktop GL elements currently use GLU so that would break if the system doesn't have GLU. AFAIK GLU simply calls GL functions to do its work so not at all useless just outdated and is on the radar for removal as a dependency.
(In reply to comment #5) > (In reply to comment #2) > > Initial support here: > > http://cgit.freedesktop.org/gstreamer/gst-plugins-gl/commit/?id=3448791e5aca86d2e912a145d24f60fde2dd3bbf > > What? we can't link against libEGL and libGLESv2? That seems...weird. Are you referring to the get_proc_address() code? > Also, probably should have gone down the pkg-config path first... The RPi libraries don't ship pkg-config files so far, and on many embedded (and other) platforms you don't have any either. > Also what's with 0bdb6d4af3bdac05c53869a6b42a25b6ec8afcb ? > Some of the desktop GL elements currently use GLU so that would break if the > system doesn't have GLU. They should probably conditionally use GLU if it is available, and not otherwise :) I think that commit is correct but missing the bits for other code to make it conditional. > AFAIK GLU simply calls GL functions to do its work so not at all useless just > outdated and is on the radar for removal as a dependency. Yes
(In reply to comment #6) > (In reply to comment #5) > > (In reply to comment #2) > > > Initial support here: > > > http://cgit.freedesktop.org/gstreamer/gst-plugins-gl/commit/?id=3448791e5aca86d2e912a145d24f60fde2dd3bbf > > > > What? we can't link against libEGL and libGLESv2? That seems...weird. > > Are you referring to the get_proc_address() code? Yea... > > Also, probably should have gone down the pkg-config path first... > > The RPi libraries don't ship pkg-config files so far, and on many embedded (and > other) platforms you don't have any either. Ok. > > Also what's with 0bdb6d4af3bdac05c53869a6b42a25b6ec8afcb ? > > Some of the desktop GL elements currently use GLU so that would break if the > > system doesn't have GLU. > > They should probably conditionally use GLU if it is available, and not > otherwise :) I think that commit is correct but missing the bits for other code > to make it conditional. Yea
I think this bug can be closed as dispmanx support is there and the lib problem (http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/gst-libs/gst/gl/gstglcontext.c?id=561a71c2444c8e1d8d49b32e470d340383468515) is discussed there: https://bugzilla.gnome.org/show_bug.cgi?id=728753