diff options
author | Matthieu Bouron <matthieu.bouron@collabora.com> | 2013-11-07 12:29:48 +0000 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2013-11-07 18:47:15 +0100 |
commit | 78f104aa61d03fe5e29cc7b9c63077ba4e134d3a (patch) | |
tree | 2e0b9aff93365d08a86e82486b93a2d2aedbcc1d /sys | |
parent | c9a822455382e9b7f98b435d778b21d805caf06e (diff) | |
download | gstreamer-plugins-bad-78f104aa61d03fe5e29cc7b9c63077ba4e134d3a.tar.gz |
applemedia: coremediabuffer: use correct retain/release functions on CMSampleBufferRef buffer
Fixes a crash while releasing the sample buffer after the image
buffer it contains.
Also fixes a minor coding style error.
https://bugzilla.gnome.org/show_bug.cgi?id=711606
Diffstat (limited to 'sys')
-rw-r--r-- | sys/applemedia/coremediabuffer.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/sys/applemedia/coremediabuffer.c b/sys/applemedia/coremediabuffer.c index 283d02f90..cf4815421 100644 --- a/sys/applemedia/coremediabuffer.c +++ b/sys/applemedia/coremediabuffer.c @@ -22,15 +22,11 @@ static void gst_core_media_meta_free (GstCoreMediaMeta * meta, GstBuffer * buf) { - if (meta->image_buf != NULL) { + if (meta->image_buf != NULL) CVPixelBufferUnlockBaseAddress (meta->image_buf, kCVPixelBufferLock_ReadOnly); - CVBufferRelease(meta->image_buf); - } - if (meta->block_buf != NULL) { - CFRelease (meta->block_buf); - } - CVBufferRelease ((CVBufferRef)meta->sample_buf); + + CFRelease (meta->sample_buf); } GType @@ -78,8 +74,7 @@ gst_core_media_buffer_new (CMSampleBufferRef sample_buf) pixel_buf = NULL; block_buf = CMSampleBufferGetDataBuffer (sample_buf); - if (image_buf != NULL && - CFGetTypeID (image_buf) == CVPixelBufferGetTypeID ()) { + if (image_buf != NULL && CFGetTypeID (image_buf) == CVPixelBufferGetTypeID ()) { pixel_buf = (CVPixelBufferRef) image_buf; if (CVPixelBufferLockBaseAddress (pixel_buf, @@ -116,7 +111,7 @@ gst_core_media_buffer_new (CMSampleBufferRef sample_buf) meta = (GstCoreMediaMeta *) gst_buffer_add_meta (buf, gst_core_media_meta_get_info (), NULL); - CVBufferRetain ((CVBufferRef)sample_buf); + CFRetain (sample_buf); meta->sample_buf = sample_buf; meta->image_buf = image_buf; meta->pixel_buf = pixel_buf; |