summaryrefslogtreecommitdiff
path: root/sys/applemedia
diff options
context:
space:
mode:
authorAlessandro Decina <alessandro.d@gmail.com>2016-01-22 13:51:49 +1100
committerAlessandro Decina <alessandro.d@gmail.com>2016-01-22 13:53:32 +1100
commitc2a57f3555ccff02874f110c711bfe11c1aac2be (patch)
treec6089cd6b9b2536fbb3005dc299694e0f29787d3 /sys/applemedia
parent2193fa8ffeca7830cdce195c6cbff4cb16717178 (diff)
downloadgstreamer-plugins-bad-c2a57f3555ccff02874f110c711bfe11c1aac2be.tar.gz
applemedia: texture cache: copy the input metas
Copy the input metas so avfvideosrc and vtenc can fast path to using CVPixelBuffer(s) even when using GLMemory.
Diffstat (limited to 'sys/applemedia')
-rw-r--r--sys/applemedia/videotexturecache.m12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/applemedia/videotexturecache.m b/sys/applemedia/videotexturecache.m
index e0e60abe8..1675d21af 100644
--- a/sys/applemedia/videotexturecache.m
+++ b/sys/applemedia/videotexturecache.m
@@ -158,7 +158,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
base_mem_alloc = GST_GL_BASE_MEMORY_ALLOCATOR (gst_gl_memory_allocator_get_default (cache->ctx));
output_buffer = gst_buffer_new ();
- gst_buffer_copy_into (output_buffer, data->input_buffer, GST_BUFFER_COPY_METADATA, 0, -1);
+ gst_buffer_copy_into (output_buffer, data->input_buffer, GST_BUFFER_COPY_ALL, 0, -1);
CVOpenGLESTextureCacheFlush (cache->cache, 0);
@@ -178,7 +178,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
CVOpenGLESTextureGetName (texture), texture,
(GDestroyNotify) CFRelease);
- gst_buffer_append_memory (output_buffer,
+ gst_buffer_replace_memory (output_buffer, 0,
(GstMemory *) gst_gl_base_memory_alloc (base_mem_alloc,
(GstGLAllocationParams *) params));
gst_gl_allocation_params_free ((GstGLAllocationParams *) params);
@@ -205,7 +205,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
CVOpenGLESTextureGetName (texture), texture,
(GDestroyNotify) CFRelease);
- gst_buffer_append_memory (output_buffer,
+ gst_buffer_replace_memory (output_buffer, 0,
(GstMemory *) gst_gl_base_memory_alloc (base_mem_alloc,
(GstGLAllocationParams *) params));
gst_gl_allocation_params_free ((GstGLAllocationParams *) params);
@@ -227,7 +227,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
CVOpenGLESTextureGetName (texture), texture,
(GDestroyNotify) CFRelease);
- gst_buffer_append_memory (output_buffer,
+ gst_buffer_replace_memory (output_buffer, 1,
(GstMemory *) gst_gl_base_memory_alloc (base_mem_alloc,
(GstGLAllocationParams *) params));
gst_gl_allocation_params_free ((GstGLAllocationParams *) params);
@@ -256,7 +256,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
IOSurfaceRef surface = CVPixelBufferGetIOSurface (pixel_buf);
data->output_buffer = gst_buffer_new ();
- gst_buffer_copy_into (data->output_buffer, data->input_buffer, GST_BUFFER_COPY_METADATA, 0, -1);
+ gst_buffer_copy_into (data->output_buffer, data->input_buffer, GST_BUFFER_COPY_ALL, 0, -1);
for (int i = 0; i < GST_VIDEO_INFO_N_PLANES (&cache->input_info); i++) {
GstIOSurfaceMemory *mem;
@@ -265,7 +265,7 @@ _do_get_gl_buffer (GstGLContext * context, ContextThreadData * data)
surface, GST_GL_TEXTURE_TARGET_RECTANGLE, &cache->input_info,
i, NULL, pixel_buf, (GDestroyNotify) CFRelease);
- gst_buffer_append_memory (data->output_buffer, (GstMemory *) mem);
+ gst_buffer_replace_memory (data->output_buffer, i, (GstMemory *) mem);
}
}
#endif