Headless mode for GL plugin
Matthew Waters
ystreet00 at gmail.com
Mon Mar 26 09:53:23 UTC 2018
Arch may be missing the GBM window system.
Check if
#define GST_GL_HAVE_WINDOW_GBM 1
Is true inside /usr/lib/gstreamer-1.0/gst/gl/gstglconfig.h
Cheers
-Matt
On 26/03/18 19:45, Alexander Yanin wrote:
> Unfortunately, it doesn't work out of the box for me on Arch. Here is
> the output^
>
> glcontext gstglcontext.c:337:gst_gl_context_new: creating a context
> for display <gldisplayegl0>, user choice:(null)
> glwindow gstglwindow.c:251:gst_gl_window_new: creating a window, user
> choice:gbm
> glwindow gstglwindow.c:293:gst_gl_window_new: Could not create window.
> user specified gbm, creating dummy window
> glcontext
> gstglcontext.c:1240:gst_gl_context_create_thread:<glcontextegl23>
> Attempting to create opengl context. user chosen api(s) (any),
> compiled api support (opengl opengl3 gles2) display api (opengl
> opengl3 gles2)
> glcontext
> gstglcontext.c:1244:gst_gl_context_create_thread:<glcontextegl23>
> Failed to create context
> glcontext gstglcontext.c:1046:gst_gl_context_create:<glcontextegl23>
> gl thread created
> glmixer gstglbasemixer.c:176:_get_gl_context:<mixer> error: Failed to
> initialize egl: EGL_NOT_INITIALIZED
>
> Did Arch maintainers miss some compile-time flags or have I done
> something wrong?
>
> 2018-03-23 15:30 GMT+03:00 Alexander Yanin <sashayanin at gmail.com
> <mailto:sashayanin at gmail.com>>:
>
> Thank you, Matt. I will try, hope this should work with 1.14
>
> 2018-03-23 15:25 GMT+03:00 Matthew Waters <ystreet00 at gmail.com
> <mailto:ystreet00 at gmail.com>>:
>
> 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/20180326/2d88a46a/attachment-0001.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/20180326/2d88a46a/attachment-0001.sig>
More information about the gstreamer-devel
mailing list