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

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Apr 27 08:29:59 UTC 2016


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

--- Comment #11 from Haihua Hu <jared.hu at nxp.com> ---
(In reply to Matthew Waters (ystreet00) from comment #10)
> Review of attachment 325838 [details] [review]:
> 
> This doesn't seem to apply cleanly to latest master.
> 
> After modifying the patch to apply, it also doesn't compile with opengl
> enabled and -Werror enabled.
> 
> gstgldeinterlace.c: In function ‘gst_gl_deinterlace_vfir_callback’:
> gstgldeinterlace.c:437:52: error: passing argument 1 of
> ‘gst_gl_deinterlace_get_fragment_shader’ from incompatible pointer type
> [-Werror=incompatible-pointer-types]
>    shader = gst_gl_deinterlace_get_fragment_shader (deinterlace_filter,
> "vfir",
>                                                     ^
> gstgldeinterlace.c:393:1: note: expected ‘GstGLFilter * {aka struct
> _GstGLFilter *}’ but argument is of type ‘GstGLDeinterlace * {aka struct
> _GstGLDeinterlace *}’
>  gst_gl_deinterlace_get_fragment_shader (GstGLFilter * filter,
>  ^
> gstgldeinterlace.c:444:7: error: implicit declaration of function
> ‘USING_OPENGL’ [-Werror=implicit-function-declaration]
>    if (USING_OPENGL (context)) {
>        ^
> gstgldeinterlace.c:444:3: error: nested extern declaration of ‘USING_OPENGL’
> [-Werror=nested-externs]
>    if (USING_OPENGL (context)) {
>    ^
> gstgldeinterlace.c: In function ‘gst_gl_deinterlace_greedyh_callback’:
> gstgldeinterlace.c:476:47: error: passing argument 1 of
> ‘gst_gl_deinterlace_get_fragment_shader’ from incompatible pointer type
> [-Werror=incompatible-pointer-types]
>        gst_gl_deinterlace_get_fragment_shader (deinterlace_filter, "greedhy",
>                                                ^
> gstgldeinterlace.c:393:1: note: expected ‘GstGLFilter * {aka struct
> _GstGLFilter *}’ but argument is of type ‘GstGLDeinterlace * {aka struct
> _GstGLDeinterlace *}’
>  gst_gl_deinterlace_get_fragment_shader (GstGLFilter * filter,
>  ^
> 
> ::: ext/gl/gstgldeinterlace.h
> @@ +41,3 @@
> +
> +  GLCB	       deinterlacefunc; 
> +  GHashTable   *shaderstable;
> 
> Why are you using a hash table?

Sorry for my mistake:

I forgot to declare USING_OPENGL in gstgldeinterlace.h and the function first
argument of gst_gl_deinterlace_get_fragment_shader is wrong, I will update this
patch immediately.

Use a hash table to store shader we create. We only need to create the shader
when first time to run, it will allow us to switch deinterlace  shader at run
time without create it again

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