diff options
author | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-03-22 18:10:09 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian.droege@collabora.co.uk> | 2013-03-22 18:10:09 +0100 |
commit | e4f7e7387835f2d104054b356866aff3d409e3e0 (patch) | |
tree | 14da13804a8ea53eb86f19d46ec2cb335a29706f /libs/gst/base/gsttypefindhelper.c | |
parent | 0dae307117a84152263d4c8b2c6aacf7e98a2f7c (diff) |
Imported Upstream version 1.0.6upstream/1.0.6
Diffstat (limited to 'libs/gst/base/gsttypefindhelper.c')
-rw-r--r-- | libs/gst/base/gsttypefindhelper.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/gst/base/gsttypefindhelper.c b/libs/gst/base/gsttypefindhelper.c index febf682..f98764b 100644 --- a/libs/gst/base/gsttypefindhelper.c +++ b/libs/gst/base/gsttypefindhelper.c @@ -176,7 +176,12 @@ helper_find_peek (gpointer data, gint64 offset, guint size) } bmap = g_slice_new0 (GstMappedBuffer); + + if (!gst_buffer_map (buffer, &bmap->map, GST_MAP_READ)) + goto map_failed; + bmap->buffer = buffer; + if (insert_pos) { helper->buffers = g_slist_insert_before (helper->buffers, insert_pos, bmap); } else { @@ -187,8 +192,6 @@ helper_find_peek (gpointer data, gint64 offset, guint size) helper->buffers = g_slist_prepend (helper->buffers, bmap); } - gst_buffer_map (buffer, &bmap->map, GST_MAP_READ); - return bmap->map.data; error: @@ -196,6 +199,13 @@ error: GST_INFO ("typefind function returned: %s", gst_flow_get_name (ret)); return NULL; } +map_failed: + { + GST_ERROR ("map failed"); + gst_buffer_unref (buffer); + g_slice_free (GstMappedBuffer, bmap); + return NULL; + } } /* |