[Bug 777409] pluginbase: Query for OpenGL app_context

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jan 24 16:14:24 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=777409

--- Comment #20 from Víctor Manuel Jáquez Leal <vjaquez at igalia.com> ---
Review of attachment 344161:
 --> (https://bugzilla.gnome.org/review?bug=777409&attachment=344161)

gstreamer-vaapi supports many drawing "backends": X11 (GLX and EGL), Wayland
and DRM

As far as I understand, you had have in mind the first one. We need to assure
the next ones. I haven't checked Wayland, but I have DRM.

DRM is used in two use cases: 1) headless, that means that you want decoding
but without a X11 display, for example streaming or storing in a file. 2) for
kmssink, for embedded, where the frames are painted in the screen using the
drm/kms system calls in the kernel.

[gst-master] [vjaquez at ip147 gstreamer-vaapi]$ GST_DEBUG=gl*:5 gst-play-1.0
~/patterns/300\ -\ Rise\ of\ an\ Empire\ -\ Trailer\ 2.mp4
--videosink="kmssink"              
Press 'k' to see a list of keyboard shortcuts.                                  
Now playing /home/vjaquez/patterns/300 - Rise of an Empire - Trailer 2.mp4      
0:00:01.402086168  6209 0x7ff5bc16eb20 INFO               gldisplay
gstgldisplay.c:282:gst_gl_display_new: creating a display, user choice:(NULL)
(platform: (NULL))
0:00:01.403068790  6209 0x7ff5bc16eb20 ERROR              gldisplay
gstgldisplay_x11.c:95:gst_gl_display_x11_new: Failed to open X11 display
connection with name, '(null)'
0:00:01.403791116  6209 0x7ff5bc16eb20 ERROR              gldisplay
gstgldisplay_wayland.c:124:gst_gl_display_wayland_new: Failed to open Wayland
display connection.
0:00:01.404259972  6209 0x7ff5bc16eb20 DEBUG              gldisplay
gstgldisplay_egl.c:116:gst_gl_display_egl_get_from_native: egl no display
extensions: EGL_EXT_client_extensions EGL_EXT_platform_base EGL_EXT_p
latform_wayland EGL_EXT_platform_x11 EGL_MESA_platform_gbm
EGL_MESA_platform_surfaceless EGL_KHR_client_get_all_proc_addresses
EGL_KHR_debug                 
0:00:01.404673110  6209 0x7ff5bc16eb20 DEBUG              gldisplay
gstgldisplay.c:650:_get_gl_context_for_thread_unlocked:<gldisplayegl0> No GL
context for thread (nil)
0:00:01.404725220  6209 0x7ff5bc16eb20 DEBUG              gldisplay
gstgldisplay.c:675:gst_gl_display_get_gl_context_for_thread:<gldisplayegl0>
returning context (NULL) for thread (nil)
0:00:01.405019866  6209 0x7ff5bc16eb20 INFO               glcontext
gstglcontext.c:333:gst_gl_context_new: creating a context for display
<gldisplayegl0>, user choice:(null)
0:00:01.405199071  6209 0x7ff5bc16eb20 DEBUG              glcontext
gstglcontext.c:367:gst_gl_context_new:<glcontextegl0> Done creating context for
display <gldisplayegl0> (user_choice:(null))
0:00:01.405237426  6209 0x7ff5bc16eb20 DEBUG              gldisplay
gstgldisplay.c:508:gst_gl_display_create_context:<gldisplayegl0> creating
context <glcontextegl0> from other context (NULL)
0:00:01.405279682  6209 0x7ff5bc16eb20 DEBUG              glcontext
gstglcontext.c:990:gst_gl_context_create:<glcontextegl0>  other_context:(NULL)  
0:00:01.405348329  6209 0x7ff5bc16eb20 INFO                glwindow
gstglwindow.c:244:gst_gl_window_new: creating a window, user choice:(null)      
0:00:01.405390974  6209 0x7ff5bc16eb20 INFO                glwindow
gstglwindow_x11.c:129:gst_gl_window_x11_new: Wrong display type 32 for this
window type 1
0:00:01.405441524  6209 0x7ff5bc16eb20 WARN                glwindow
gstglwindow.c:277:gst_gl_window_new: Could not create window. user specified
(null), creating dummy window
0:00:01.405553687  6209 0x7ff5bc16eb20 DEBUG              glcontext
gstglcontext.c:899:gst_gl_context_set_window:<glcontextegl0>
window:<gldummywindow0>     
0:00:01.405813413  6209      0x1bdbf70 DEBUG              glcontext
gstglcontext.c:1148:gst_gl_context_create_thread:<glcontextegl0> Creating
thread                          
0:00:01.405918450  6209      0x1bdbf70 INFO               glcontext
gstglcontext.c:1205:gst_gl_context_create_thread:<glcontextegl0> Attempting to
create opengl context. user chosen api(s) (any), compiled api su
pport (opengl opengl3) display api (any)                                        
0:00:01.405970103  6209      0x1bdbf70 DEBUG              glcontext
gstglcontext_egl.c:288:gst_gl_context_egl_create_context:<glcontextegl0>
Creating EGL context
libEGL warning: DRI3: xcb_connect failed
libEGL warning: DRI2: xcb_connect failed                                        
libEGL warning: DRI2: xcb_connect failed

It doesn't fail, at this moment, but it would fail, besides the wasted bits and
cpu cycles.

A workaround in this case would be, if the GstGLDisplay created is the dummy
one, skip the GstGLContext creation.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list