summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMatthieu Bouron <matthieu.bouron@collabora.com>2013-11-07 12:29:48 +0000
committerSebastian Dröge <sebastian@centricular.com>2013-11-07 18:47:15 +0100
commit78f104aa61d03fe5e29cc7b9c63077ba4e134d3a (patch)
tree2e0b9aff93365d08a86e82486b93a2d2aedbcc1d /sys
parentc9a822455382e9b7f98b435d778b21d805caf06e (diff)
downloadgstreamer-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.c15
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;