[Bug 768160] qtplugins: How to implement qmlglsrc.

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Tue Jul 26 08:18:36 UTC 2016


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

--- Comment #10 from Haihua Hu <jared.hu at nxp.com> ---
(In reply to Haihua Hu from comment #2)
> (In reply to Matthew Waters (ystreet00) from comment #1)
> > qmlglsrc as a screen grabber of the qml scene graph is in general a bad idea
> > for performance reasons as you have to perform a readback (bad) of the GL
> > front buffer (also bad).  If possible, you should attempt to retrieve your
> > rendering before qmlglsink and pass that downstream.
> > 
> > That being said, it's possible that screen grabbing may be your only option
> > so something like that would be useful.
> 
> I'm now implementing this plugin which is only for grabing scene graph. But
> I met a problem in unit test. pipeline for unit test is :
> 
> qmlglsrc ! glimagesink
> 
> There are two important threads in unit test that thread-1 is scene graph
> render thread and thread-2 is glimagesink rendering thread. thread-1 warp qt
> scene graph context into glcontext, glimagesink will query app_context from
> upstream and get this warp context, then it will create glcontext which is
> shared by the wrap context. qmlglsrc will do texture copy from scene graph
> render target in afterrendering() slots of thread-1 and pass that texture
> downstream. glimagesink will render this texture in thread-2.
> 
> But the result is that glimagesink only show black frame not the qmlview.
> 
> In generally, two threads, each thread has a context and a render
> surface(qmlview, glimagesink window).
> 
> Is there something wrong with my design?

Hi Matthew,

Do you know the root cause of this issue if connect to glimagesink?

-- 
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