diff --git a/sys/applemedia/iosglmemory.c b/sys/applemedia/iosglmemory.c index 65507b4859..ac753670a8 100644 --- a/sys/applemedia/iosglmemory.c +++ b/sys/applemedia/iosglmemory.c @@ -42,6 +42,7 @@ _ios_gl_memory_destroy (GstGLBaseMemory * gl_mem) { GstIOSGLMemory *mem = (GstIOSGLMemory *) gl_mem; + CFRelease (mem->texture); gst_memory_unref (GST_MEMORY_CAST (mem->cv_mem)); GST_GL_BASE_MEMORY_ALLOCATOR_CLASS (gst_ios_gl_memory_allocator_parent_class)->destroy (gl_mem); @@ -134,8 +135,7 @@ _ios_gl_memory_new (GstGLContext * context, GstVideoGLTextureType tex_type, guint tex_id, GstVideoInfo * info, - guint plane, - GstVideoAlignment * valign, gpointer user_data, GDestroyNotify notify) + guint plane, GstVideoAlignment * valign, CVOpenGLESTextureRef texture) { GstIOSGLMemory *mem; @@ -143,8 +143,9 @@ _ios_gl_memory_new (GstGLContext * context, mem->gl_mem.tex_id = tex_id; mem->gl_mem.texture_wrapped = TRUE; gst_gl_memory_init (&mem->gl_mem, _ios_gl_memory_allocator, NULL, context, - target, tex_type, NULL, info, plane, valign, user_data, notify); + target, tex_type, NULL, info, plane, valign, NULL, NULL); mem->cv_mem = cv_mem; + mem->texture = texture; GST_MINI_OBJECT_FLAG_SET (mem, GST_MEMORY_FLAG_READONLY); @@ -158,9 +159,8 @@ gst_ios_gl_memory_new_wrapped (GstGLContext * context, GstVideoGLTextureType tex_type, guint tex_id, GstVideoInfo * info, - guint plane, - GstVideoAlignment * valign, gpointer user_data, GDestroyNotify notify) + guint plane, GstVideoAlignment * valign, CVOpenGLESTextureRef texture) { return _ios_gl_memory_new (context, cv_mem, target, tex_type, tex_id, info, - plane, valign, user_data, notify); + plane, valign, texture); } diff --git a/sys/applemedia/iosglmemory.h b/sys/applemedia/iosglmemory.h index ae9816a0b2..f55d4fd3d0 100644 --- a/sys/applemedia/iosglmemory.h +++ b/sys/applemedia/iosglmemory.h @@ -43,6 +43,7 @@ typedef struct _GstIOSGLMemory { GstGLMemory gl_mem; GstAppleCoreVideoMemory *cv_mem; + CVOpenGLESTextureRef texture; } GstIOSGLMemory; #define GST_IOS_GL_MEMORY_ALLOCATOR_NAME "IOSGLMemory" @@ -58,8 +59,7 @@ gst_ios_gl_memory_new_wrapped (GstGLContext * context, GstVideoInfo * info, guint plane, GstVideoAlignment *valign, - gpointer user_data, - GDestroyNotify notify); + CVOpenGLESTextureRef texture); gboolean gst_is_ios_gl_memory (GstMemory * mem); diff --git a/sys/applemedia/videotexturecache.m b/sys/applemedia/videotexturecache.m index 8315a3bba0..529a1033ec 100644 --- a/sys/applemedia/videotexturecache.m +++ b/sys/applemedia/videotexturecache.m @@ -157,7 +157,7 @@ _do_create_memory (GstGLContext * context, ContextThreadData * data) gl_target, GST_VIDEO_GL_TEXTURE_TYPE_RGBA, CVOpenGLESTextureGetName (texture), &cache->input_info, - 0, NULL, texture, (GDestroyNotify) CFRelease); + 0, NULL, texture); break; case GST_VIDEO_FORMAT_NV12: { GstVideoGLTextureType textype; @@ -181,7 +181,7 @@ _do_create_memory (GstGLContext * context, ContextThreadData * data) memory = gst_apple_core_video_memory_new_wrapped (gpixbuf, plane, size); gl_memory = gst_ios_gl_memory_new_wrapped (context, memory, gl_target, textype, CVOpenGLESTextureGetName (texture), &cache->input_info, - plane, NULL, texture, (GDestroyNotify) CFRelease); + plane, NULL, texture); break; } default: