GNOME Bugzilla – Bug 776401
gst-launch should set GST_GL_XINITHREADS so that XinitThread() is called appropriately
Last modified: 2017-01-09 13:52:16 UTC
A simple 'videotestsrc ! glimagesink' with gst-launch started to fail very consistently on my embedded boards (Dragonboard) and actually on my PC as well (running Debian/Sid). $ gst-launch-1.0 videotestsrc ! videoconvert ! glimagesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Got context from element 'sink': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0"; Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock ** (gst-launch-1.0:9734): CRITICAL **: gst_gl_context_thread_add: assertion 'GST_IS_GL_CONTEXT (context)' failed [xcb] Unknown request in queue while dequeuing [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called [xcb] Aborting, sorry about that. gst-launch-1.0: ../../src/xcb_io.c:165: dequeue_pending_request: Assertion `!xcb_xlib_unknown_req_in_deq' failed. Aborted As discussed on IRC with slomo, let's ensure that gst tools such as gst-launch and gst-play will force XInitThread() to be called.
Created attachment 342396 [details] [review] set GST_GL_XINITTHREADS tested on my PC, using gst-launch-1.0 videotestsrc ! glimagesink
Comment on attachment 342396 [details] [review] set GST_GL_XINITTHREADS Seems like a good idea to me, even if annoying.
commit 2d5dba8d058081f0b41d3b25efddc5edbd3a5120 Author: Nicolas Dechesne <nicolas.dechesne@linaro.org> Date: Thu Dec 22 18:45:10 2016 +0100 tools: gst-launch: set GST_GL_XINITTHREADS This ensure that XInitThreads is called and so gl contexts are properly initialized. https://bugzilla.gnome.org/show_bug.cgi?id=776401