coremediabuffer: keep an extra ref to the image and data buffer
This commit is contained in:
parent
7c23a6f23c
commit
31d7c42158
@ -22,9 +22,14 @@
|
|||||||
static void
|
static void
|
||||||
gst_core_media_meta_free (GstCoreMediaMeta * meta, GstBuffer * buf)
|
gst_core_media_meta_free (GstCoreMediaMeta * meta, GstBuffer * buf)
|
||||||
{
|
{
|
||||||
if (meta->image_buf != NULL)
|
if (meta->image_buf != NULL) {
|
||||||
CVPixelBufferUnlockBaseAddress (meta->image_buf,
|
CVPixelBufferUnlockBaseAddress (meta->image_buf,
|
||||||
kCVPixelBufferLock_ReadOnly);
|
kCVPixelBufferLock_ReadOnly);
|
||||||
|
CVBufferRelease(meta->image_buf);
|
||||||
|
}
|
||||||
|
if (meta->block_buf != NULL) {
|
||||||
|
CFRelease (meta->block_buf);
|
||||||
|
}
|
||||||
|
|
||||||
CFRelease (meta->sample_buf);
|
CFRelease (meta->sample_buf);
|
||||||
}
|
}
|
||||||
@ -112,6 +117,10 @@ gst_core_media_buffer_new (CMSampleBufferRef sample_buf)
|
|||||||
meta = (GstCoreMediaMeta *) gst_buffer_add_meta (buf,
|
meta = (GstCoreMediaMeta *) gst_buffer_add_meta (buf,
|
||||||
gst_core_media_meta_get_info (), NULL);
|
gst_core_media_meta_get_info (), NULL);
|
||||||
CFRetain (sample_buf);
|
CFRetain (sample_buf);
|
||||||
|
if (image_buf)
|
||||||
|
CVBufferRetain (image_buf);
|
||||||
|
if (block_buf)
|
||||||
|
CFRetain (block_buf);
|
||||||
meta->sample_buf = sample_buf;
|
meta->sample_buf = sample_buf;
|
||||||
meta->image_buf = image_buf;
|
meta->image_buf = image_buf;
|
||||||
meta->pixel_buf = pixel_buf;
|
meta->pixel_buf = pixel_buf;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user