From: Matthieu Bouron Date: Mon, 27 Apr 2015 12:49:59 +0000 (+0200) Subject: glfiltercube: Don't initialize multiple shaders on renegotiation X-Git-Tag: 1.6.0~924 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e765a9bb00083ec1259f3e5f88c145a1522d01b9;p=platform%2Fupstream%2Fgst-plugins-bad.git glfiltercube: Don't initialize multiple shaders on renegotiation --- diff --git a/ext/gl/gstglfiltercube.c b/ext/gl/gstglfiltercube.c index a17b5df..ad529b3 100644 --- a/ext/gl/gstglfiltercube.c +++ b/ext/gl/gstglfiltercube.c @@ -292,6 +292,12 @@ gst_gl_filter_cube_reset_gl (GstGLFilter * filter) gl->DeleteBuffers (1, &cube_filter->vertex_buffer); cube_filter->vertex_buffer = 0; } + + if (cube_filter->shader) { + gst_gl_context_del_shader (GST_GL_BASE_FILTER (filter)->context, + cube_filter->shader); + cube_filter->shader = NULL; + } } static gboolean @@ -313,6 +319,11 @@ gst_gl_filter_cube_init_shader (GstGLFilter * filter) { GstGLFilterCube *cube_filter = GST_GL_FILTER_CUBE (filter); + if (cube_filter->shader) { + gst_object_unref (cube_filter->shader); + cube_filter->shader = NULL; + } + /* blocking call, wait the opengl thread has compiled the shader */ return gst_gl_context_gen_shader (GST_GL_BASE_FILTER (filter)->context, cube_v_src, cube_f_src, &cube_filter->shader);