Headless mode for GL plugin

Matthew Waters ystreet00 at gmail.com
Fri Mar 23 12:25:35 UTC 2018


It should work out of the box if you don't already have an X11/Wayland
display server running.  It's chosen after X11/Wayland connections fail.

You can also force it by setting the environment variable GST_GL_WINDOW=gbm

e.g. GST_DEBUG=gl*:4 GST_GL_WINDOW=gbm gst-launch-1.0 videotestsrc !
glupload ! gleffects_squeeze ! glcolorconvert ! gldownload ! pngenc !
filesink location=test.png

Cheers
-Matt

On 23/03/18 22:57, Alexander Yanin wrote:
> ​Thanks! Fine, what I need to do to make it work on Intel Kabylake
> with Mesa and without neither xorg nor wayland? Would it work right
> out of the box or should I perform some additional actions to make it run?
>
> 2018-03-23 14:50 GMT+03:00 Matthew Waters <ystreet00 at gmail.com
> <mailto:ystreet00 at gmail.com>>:
>
>     Accessing the GPU without a windowing system is something that is
>     very specific to every driver/hardware combination.  We support
>     (with 1.14) one method using kms and a libgbm compatible driver
>     which are used by all of the Mesa drivers.  Some other embedded
>     systems (rpi, imx6) have other ways. That nvidia blog post you've
>     linked contains references to EGL_EXT_device_query
>     <https://www.khronos.org/registry/EGL/extensions/EXT/EGL_EXT_device_query.txt>
>     which I guess is nvidia's way of performing a similar thing and
>     such a method could be added to the GStreamer GL library and plugins.
>
>     Cheers
>     -Matt
>
>
>     On 23/03/18 21:10, Alexander Yanin wrote:
>>     Hi!
>>
>>     Is it possible to use GL elements (like glvideomixer, glupload,
>>     gleffects, etc) without anything like Wayland, Xorg, etc? In
>>     particular, I want to use glvideomixer instead of compositor on a
>>     server without any display attached. I heard about a possible
>>     workaround using frame buffer, but I didn't manage to find a way
>>     to use glvideomixer without xorg or wayland. It crushes on
>>     context initialization.
>>
>>     Here is the output:
>>
>>     glmixer gstglbasemixer.c:217:_get_gl_context:<mixer> error:
>>     Failed to initialize egl: EGL_NOT_INITIALIZED
>>     glwindow gstglwindow.c:285:gst_gl_window_new: Could not create
>>     window. user specified (null), creating dummy window
>>     glcontext
>>     gstglcontext.c:1235:gst_gl_context_create_thread:<glcontextegl48>
>>     Failed to create context
>>
>>     So, is there a way to bypass this issue without using xorg or
>>     wayland? I heard that it is possible to initialize EGL without
>>     xorg [1]. Is it possible to use this approach within gl elements?
>>
>>     [1]
>>https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/
>>     <https://devblogs.nvidia.com/egl-eye-opengl-visualization-without-x-server/>
>>
>>
>>     _______________________________________________
>>     gstreamer-devel mailing list
>>     gstreamer-devel at lists.freedesktop.org
>>     <mailto:gstreamer-devel at lists.freedesktop.org>
>>     https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>     <https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180323/bb57253f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 516 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20180323/bb57253f/attachment.sig>


More information about the gstreamer-devel mailing list