[Bug 740753] vaapisink: add support for EGL

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Jul 24 10:32:48 UTC 2017


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

--- Comment #4 from Daniel van Vugt <daniel.van.vugt at canonical.com> ---
Created attachment 356285
  --> https://bugzilla.gnome.org/attachment.cgi?id=356285&action=edit
Working EGL platform first prototype

Here's a prototype of working EGL support, developed against 1.12 and under
Wayland (this also fixes bug 784369). It needs more work, so maybe others can
step in and help.

Here are the three main fixes being applied:

gstvaapipostproc.c: Don't drop GL texture upload support. The below changes
make it work, and besides, if you drop texture upload support then you could be
left with a tiled buffer that then gets uploaded linearly in clutter-gst
causing visual corruption (bug 784369).

gstvaapitexture_egl.c: Make GL texture -> EGLImage -> GEM name -> VA surface
binding work. So now libVA renders directly into the GL texture supplied by the
application. FIXME: No portable way to discover the true buffer size, which is
risky :(

gstvaapitexture_egl.c: Set the correct texture->egl_context (that of the
calling thread) so that texture_id is valid and doesn't get rejected by
eglCreateImageKHR.

With this patch totem and gst-launch-1.0 using vaapidecodebin with either
clutterautovideosink/glimagesink now work, incurring very low CPU.

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