mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-26 00:58:12 +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;
|
GstIOSGLMemory *mem = (GstIOSGLMemory *) gl_mem;
|
||||||
|
|
||||||
CFRelease (mem->texture);
|
mem->gl_notify (mem->gl_data);
|
||||||
gst_memory_unref (GST_MEMORY_CAST (mem->cv_mem));
|
gst_memory_unref (GST_MEMORY_CAST (mem->cv_mem));
|
||||||
GST_GL_BASE_MEMORY_ALLOCATOR_CLASS
|
GST_GL_BASE_MEMORY_ALLOCATOR_CLASS
|
||||||
(gst_ios_gl_memory_allocator_parent_class)->destroy (gl_mem);
|
(gst_ios_gl_memory_allocator_parent_class)->destroy (gl_mem);
|
||||||
|
@ -135,7 +135,8 @@ _ios_gl_memory_new (GstGLContext * context,
|
||||||
GstVideoGLTextureType tex_type,
|
GstVideoGLTextureType tex_type,
|
||||||
guint tex_id,
|
guint tex_id,
|
||||||
GstVideoInfo * info,
|
GstVideoInfo * info,
|
||||||
guint plane, GstVideoAlignment * valign, CVOpenGLESTextureRef texture)
|
guint plane,
|
||||||
|
GstVideoAlignment * valign, gpointer gl_data, GDestroyNotify gl_notify)
|
||||||
{
|
{
|
||||||
GstIOSGLMemory *mem;
|
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,
|
gst_gl_memory_init (&mem->gl_mem, _ios_gl_memory_allocator, NULL, context,
|
||||||
target, tex_type, NULL, info, plane, valign, NULL, NULL);
|
target, tex_type, NULL, info, plane, valign, NULL, NULL);
|
||||||
mem->cv_mem = cv_mem;
|
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);
|
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,
|
GstVideoGLTextureType tex_type,
|
||||||
guint tex_id,
|
guint tex_id,
|
||||||
GstVideoInfo * info,
|
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,
|
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;
|
GstGLMemory gl_mem;
|
||||||
GstAppleCoreVideoMemory *cv_mem;
|
GstAppleCoreVideoMemory *cv_mem;
|
||||||
CVOpenGLESTextureRef texture;
|
gpointer gl_data;
|
||||||
|
GDestroyNotify gl_notify;
|
||||||
} GstIOSGLMemory;
|
} GstIOSGLMemory;
|
||||||
|
|
||||||
#define GST_IOS_GL_MEMORY_ALLOCATOR_NAME "IOSGLMemory"
|
#define GST_IOS_GL_MEMORY_ALLOCATOR_NAME "IOSGLMemory"
|
||||||
|
@ -59,7 +60,8 @@ gst_ios_gl_memory_new_wrapped (GstGLContext * context,
|
||||||
GstVideoInfo * info,
|
GstVideoInfo * info,
|
||||||
guint plane,
|
guint plane,
|
||||||
GstVideoAlignment *valign,
|
GstVideoAlignment *valign,
|
||||||
CVOpenGLESTextureRef texture);
|
gpointer gl_data,
|
||||||
|
GDestroyNotify gl_notify);
|
||||||
|
|
||||||
gboolean gst_is_ios_gl_memory (GstMemory * mem);
|
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,
|
gl_target, GST_VIDEO_GL_TEXTURE_TYPE_RGBA,
|
||||||
CVOpenGLESTextureGetName (texture),
|
CVOpenGLESTextureGetName (texture),
|
||||||
&cache->input_info,
|
&cache->input_info,
|
||||||
0, NULL, texture);
|
0, NULL, texture, (GDestroyNotify) CFRelease);
|
||||||
break;
|
break;
|
||||||
case GST_VIDEO_FORMAT_NV12: {
|
case GST_VIDEO_FORMAT_NV12: {
|
||||||
GstVideoGLTextureType textype;
|
GstVideoGLTextureType textype;
|
||||||
|
@ -181,7 +181,7 @@ _do_create_memory (GstGLContext * context, ContextThreadData * data)
|
||||||
memory = gst_apple_core_video_memory_new_wrapped (gpixbuf, plane, size);
|
memory = gst_apple_core_video_memory_new_wrapped (gpixbuf, plane, size);
|
||||||
gl_memory = gst_ios_gl_memory_new_wrapped (context, memory,
|
gl_memory = gst_ios_gl_memory_new_wrapped (context, memory,
|
||||||
gl_target, textype, CVOpenGLESTextureGetName (texture), &cache->input_info,
|
gl_target, textype, CVOpenGLESTextureGetName (texture), &cache->input_info,
|
||||||
plane, NULL, texture);
|
plane, NULL, texture, (GDestroyNotify) CFRelease);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in a new issue