summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-11-30 10:55:16 +0200
committerSebastian Dröge <sebastian@centricular.com>2016-11-30 10:55:16 +0200
commit52d74419420e95c68e9384b39a25420d5f880a73 (patch)
tree5150e21c6ced973cb1cee67c16c58d0ced56e50b
parent1e648002782755d6ff3de7b948d89e6195924c44 (diff)
audioconvert: Error out if mapping input/output buffer failed
-rw-r--r--gst/audioconvert/gstaudioconvert.c22
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