static void gst_gl_filter_filterblur_reset (GstGLFilter * filter) { GstGLFilterBlur *filterblur = GST_GL_FILTERBLUR (filter); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, filterblur->shader0); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, filterblur->shader1); }
static void gst_gl_filter_filtersobel_reset (GstGLFilter * filter) { GstGLFilterSobel *filtersobel = GST_GL_FILTERSOBEL (filter); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, filtersobel->desat); gst_gl_display_del_shader (filter->display, filtersobel->hconv); gst_gl_display_del_shader (filter->display, filtersobel->vconv); gst_gl_display_del_shader (filter->display, filtersobel->len); }
static void gst_gl_filter_cube_reset (GstGLFilter * filter) { GstGLFilterCube *cube_filter = GST_GL_FILTER_CUBE (filter); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, cube_filter->shader); }
static void gst_gl_filter_glass_reset (GstGLFilter * filter) { GstGLFilterGlass *glass_filter = GST_GL_FILTER_GLASS (filter); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, glass_filter->shader); }
static void gst_gl_bumper_reset (GstGLFilter * filter) { GstGLBumper *bumper_filter = GST_GL_BUMPER (filter); //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, bumper_filter->shader); }
static void gst_gl_mosaic_reset (GstGLMixer * mixer) { GstGLMosaic *mosaic = GST_GL_MOSAIC (mixer); mosaic->input_gl_buffers = NULL; //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (mixer->display, mosaic->shader); }
static void gst_gl_effects_ghash_func_clean (gpointer key, gpointer value, gpointer data) { GstGLShader *shader = (GstGLShader *) value; GstGLFilter *filter = (GstGLFilter *) data; //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, shader); value = NULL; }
static void gst_gl_deinterlace_reset (GstGLFilter * filter) { GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter); if (deinterlace_filter->gl_buffer_prev) { gst_buffer_unref (GST_BUFFER_CAST (deinterlace_filter->gl_buffer_prev)); deinterlace_filter->gl_buffer_prev = NULL; } //blocking call, wait the opengl thread has destroyed the shader gst_gl_display_del_shader (filter->display, deinterlace_filter->shader); }