glmemory: fix texture leak in _gl_mem_copy
authorJulien Isorce <j.isorce@samsung.com>
Thu, 17 Sep 2015 13:17:09 +0000 (14:17 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 9 Dec 2017 19:32:08 +0000 (19:32 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=755456

gst-libs/gst/gl/gstglmemory.c

index b1bef1e..0a528ec 100644 (file)
@@ -592,7 +592,7 @@ _gl_mem_create (GstGLMemory * gl_mem, GError ** error)
       gst_gl_sized_gl_format_from_gl_format_type (context, tex_format,
       tex_type);
 
-  if (!gl_mem->tex_id) {
+  if (!gl_mem->texture_wrapped) {
     gl_mem->tex_id =
         _new_texture (context, gl_mem->tex_target, internal_format, tex_format,
         tex_type, gl_mem->tex_width, GL_MEM_HEIGHT (gl_mem));
@@ -1287,12 +1287,12 @@ gst_gl_memory_wrapped_texture (GstGLContext * context,
   mem = g_slice_new0 (GstGLMemory);
 
   mem->tex_id = texture_id;
+  mem->texture_wrapped = TRUE;
 
   _gl_mem_init (mem, _gl_allocator, NULL, context, NULL, info, valign, plane,
       user_data, notify);
 
   mem->tex_target = texture_target;
-  mem->texture_wrapped = TRUE;
 
   mem = (GstGLMemory *) gst_gl_base_buffer_alloc_data ((GstGLBaseBuffer *) mem);
   GST_MINI_OBJECT_FLAG_SET (mem, GST_GL_BASE_BUFFER_FLAG_NEED_DOWNLOAD);