[Bug 764873] gldeinterlace: enable this plugin on OpenGL ES using a simple deinterlace fragment shader

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Apr 11 07:32:22 UTC 2016


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

Matthew Waters (ystreet00) <ystreet00 at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #325696|none                        |needs-work
             status|                            |

--- Comment #2 from Matthew Waters (ystreet00) <ystreet00 at gmail.com> ---
Review of attachment 325696:
 --> (https://bugzilla.gnome.org/review?bug=764873&attachment=325696)

A couple of things.

It's possible to build against both the OpenGL desktop and GLES API's.  As such
the GST_GL_HAVE OPENGL define is not the correct way to conditionally check for
the GL API.  Use gst_gl_context_get_gl_api() instead.

Also, the current deinterlace shader is trivial to port to GLES2.  Any reason
you did not do that?

::: ext/gl/gstgldeinterlace.c
@@ +69,2 @@
 /* *INDENT-OFF* */
+const gchar *vertex_default =

You should use the default vertex string, gst_gl_shader_string_vertex_default
instead of duplicating it here.

@@ +157,3 @@
+
+const gchar *deinterlace_fragment_source_gles2 =
+  "precision mediump float;\n"

Should add #ifdef GL_ES, #endif around the precision qualifier.

@@ +269,2 @@
   //blocking call, wait the opengl thread has compiled the shader
+#if GST_GL_HAVE_OPENGL

This won't always do what you want.  Use gst_gl_context_get_gl_api() instead.

@@ +326,3 @@
+  gst_gl_shader_use (deinterlace_filter->shader);
+
+#if GST_GL_HAVE_OPENGL

ditto

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