Builds for MacOS
authorNick Kallen <nickkallen@me.com>
Tue, 14 Feb 2017 12:04:01 +0000 (13:04 +0100)
committerSebastian Dröge <sebastian@centricular.com>
Sun, 19 Feb 2017 10:52:28 +0000 (12:52 +0200)
https://bugzilla.gnome.org/show_bug.cgi?id=778434

sys/applemedia/iosglmemory.c
sys/applemedia/iosglmemory.h
sys/applemedia/videotexturecache.m

index ac753670a85cfa090ecd9e2d077db49717bf90c4..c19f5f31d97e236838d13e649e0a6ad49c8e38ce 100644 (file)
@@ -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);
 }
index f55d4fd3d085325388f97cf734bf03caa71d0e1d..7e457d2bb4fe17dba9020927deab5e138a5e6e3a 100644 (file)
@@ -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);
 
index 529a1033ec069ec26377f82fcd65c7df66330684..8315a3bba044c1666d4c15c893f313c1a76a29aa 100644 (file)
@@ -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: