[Bug 754680] fix support for EGL through GstVideoGLTextureUploadMeta

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Oct 28 06:53:56 UTC 2016


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

--- Comment #29 from Hyunjun Ko <zzoon at igalia.com> ---
Long time!

This time, I would like to propose new design for VaapiDisplay, not only to fix
this issue, but also to improve current design, which is based on comment #27.

Current problems.
1. An instance of GstVaapiDisplayGLX/EGL should be created when gl context is
found in pipeline, which means should remove the existed instance of Non-GL
VaapiDisplay. Yes. That's what this bug says.

2. A bit weird design for GstVaapiDisplayEGL.
 GstVaapiDisplayEGL is a decendent of GstVaapiDisplay, and then has an instance
of GstVaapiDisplayWayland/X11 as a private member again. IMHO, This desgin
makes people confusing and less readable.

3. Hard to implement handling/drawing on GL/EGL window in vaapisink, which is
not implemented properly.
 Currently, vaapisink has property "display", which is to be set specific
display platform (glx/egl/drm), but not completed yet. 

So, basic idea of mine is below.
1. Cut the relation between GstVaapi(native)Display and GstVaapiDisplayGLX/EGL.
2. So we could create vaapi display for native display(X11/Wayland) first, then
bind GL stuff once gl context is found.

To do this, I create GInterface for GstVaapiDisplayGLX/EGL and GstVaapiDisplay
has an instance of this when GL things should be binded so that it could put
surface to GL texture if needed.
This can fix this bug and makes handling display flexible, and I guess it could
get easier to think about problem 3.

After some experiments, I got positive results.
I'm going to propose the patch, and want to listen to opinions!

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