mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-11 09:55:36 +00:00
parent
487e57f1b7
commit
2f676d61a7
3 changed files with 14 additions and 9 deletions
|
@ -42,7 +42,7 @@ _ios_gl_memory_destroy (GstGLBaseMemory * gl_mem)
|
|||
{
|
||||
GstIOSGLMemory *mem = (GstIOSGLMemory *) gl_mem;
|
||||
|
||||
CFRelease (mem->texture);
|
||||
mem->gl_notify (mem->gl_data);
|
||||
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);
|
||||
|
@ -135,7 +135,8 @@ _ios_gl_memory_new (GstGLContext * context,
|
|||
GstVideoGLTextureType tex_type,
|
||||
guint tex_id,
|
||||
GstVideoInfo * info,
|
||||
guint plane, GstVideoAlignment * valign, CVOpenGLESTextureRef texture)
|
||||
guint plane,
|
||||
GstVideoAlignment * valign, gpointer gl_data, GDestroyNotify gl_notify)
|
||||
{
|
||||
GstIOSGLMemory *mem;
|
||||
|
||||
|
@ -145,7 +146,8 @@ _ios_gl_memory_new (GstGLContext * context,
|
|||
gst_gl_memory_init (&mem->gl_mem, _ios_gl_memory_allocator, NULL, context,
|
||||
target, tex_type, NULL, info, plane, valign, NULL, NULL);
|
||||
mem->cv_mem = cv_mem;
|
||||
mem->texture = texture;
|
||||
mem->gl_data = gl_data;
|
||||
mem->gl_notify = gl_notify;
|
||||
|
||||
GST_MINI_OBJECT_FLAG_SET (mem, GST_MEMORY_FLAG_READONLY);
|
||||
|
||||
|
@ -159,8 +161,9 @@ gst_ios_gl_memory_new_wrapped (GstGLContext * context,
|
|||
GstVideoGLTextureType tex_type,
|
||||
guint tex_id,
|
||||
GstVideoInfo * info,
|
||||
guint plane, GstVideoAlignment * valign, CVOpenGLESTextureRef texture)
|
||||
guint plane,
|
||||
GstVideoAlignment * valign, gpointer gl_data, GDestroyNotify gl_notify)
|
||||
{
|
||||
return _ios_gl_memory_new (context, cv_mem, target, tex_type, tex_id, info,
|
||||
plane, valign, texture);
|
||||
plane, valign, gl_data, gl_notify);
|
||||
}
|
||||
|
|
|
@ -43,7 +43,8 @@ typedef struct _GstIOSGLMemory
|
|||
{
|
||||
GstGLMemory gl_mem;
|
||||
GstAppleCoreVideoMemory *cv_mem;
|
||||
CVOpenGLESTextureRef texture;
|
||||
gpointer gl_data;
|
||||
GDestroyNotify gl_notify;
|
||||
} GstIOSGLMemory;
|
||||
|
||||
#define GST_IOS_GL_MEMORY_ALLOCATOR_NAME "IOSGLMemory"
|
||||
|
@ -59,7 +60,8 @@ gst_ios_gl_memory_new_wrapped (GstGLContext * context,
|
|||
GstVideoInfo * info,
|
||||
guint plane,
|
||||
GstVideoAlignment *valign,
|
||||
CVOpenGLESTextureRef texture);
|
||||
gpointer gl_data,
|
||||
GDestroyNotify gl_notify);
|
||||
|
||||
gboolean gst_is_ios_gl_memory (GstMemory * mem);
|
||||
|
||||
|
|
|
@ -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);
|
||||
0, NULL, texture, (GDestroyNotify) CFRelease);
|
||||
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);
|
||||
plane, NULL, texture, (GDestroyNotify) CFRelease);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
Loading…
Reference in a new issue