diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2016-11-30 10:55:16 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-11-30 10:55:16 +0200 |
commit | 52d74419420e95c68e9384b39a25420d5f880a73 (patch) | |
tree | 5150e21c6ced973cb1cee67c16c58d0ced56e50b | |
parent | 1e648002782755d6ff3de7b948d89e6195924c44 (diff) |
audioconvert: Error out if mapping input/output buffer failed
-rw-r--r-- | gst/audioconvert/gstaudioconvert.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c index 0b7c19cc0..f0f7a7a40 100644 --- a/gst/audioconvert/gstaudioconvert.c +++ b/gst/audioconvert/gstaudioconvert.c @@ -732,12 +732,14 @@ gst_audio_convert_transform (GstBaseTransform * base, GstBuffer * inbuf, && gst_buffer_n_memory (inbuf) == 1 && gst_memory_is_writable (gst_buffer_peek_memory (inbuf, 0)); - gst_buffer_map (inbuf, &srcmap, - inbuf_writable ? GST_MAP_READWRITE : GST_MAP_READ); + if (!gst_buffer_map (inbuf, &srcmap, + inbuf_writable ? GST_MAP_READWRITE : GST_MAP_READ)) + goto inmap_error; } else { inbuf_writable = TRUE; } - gst_buffer_map (outbuf, &dstmap, GST_MAP_WRITE); + if (!gst_buffer_map (outbuf, &dstmap, GST_MAP_WRITE)) + goto outmap_error; /* check in and outsize */ if (inbuf != outbuf) { @@ -790,6 +792,20 @@ convert_error: ret = GST_FLOW_ERROR; goto done; } +inmap_error: + { + GST_ELEMENT_ERROR (this, STREAM, FORMAT, + (NULL), ("failed to map input buffer")); + return GST_FLOW_ERROR; + } +outmap_error: + { + GST_ELEMENT_ERROR (this, STREAM, FORMAT, + (NULL), ("failed to map output buffer")); + if (inbuf != outbuf) + gst_buffer_unmap (inbuf, &srcmap); + return GST_FLOW_ERROR; + } } static GstFlowReturn |