summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-10-22 15:07:04 +0200
committerTim-Philipp Müller <tim@centricular.com>2014-10-24 22:11:33 +0100
commit9c7b1765db86229bdde4b3cc20038e5115a8a59e (patch)
tree49c7f460691331b9a7cfafe2a54cea94ebdd069f
parent621ae89215b1479d2d9d04a336a4adedb42ef659 (diff)
downloadgstreamer-plugins-bad-9c7b1765db86229bdde4b3cc20038e5115a8a59e.tar.gz
rawparse: Check for 0-size after adjusting the size for the frame size
If we don't have a complete raw audio frame we would otherwise still ask for a 0 sized buffer from the adapter.
-rw-r--r--gst/rawparse/gstrawparse.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c
index 62275f984..cbed6e158 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -311,17 +311,14 @@ gst_raw_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
gst_adapter_push (rp->adapter, buffer);
available = gst_adapter_available (rp->adapter);
- if (available == 0) {
- ret = GST_FLOW_OK;
- goto done;
- } else if (rp_class->multiple_frames_per_buffer) {
+ if (rp_class->multiple_frames_per_buffer) {
buffersize = available;
buffersize -= buffersize % rp->framesize;
} else {
buffersize = rp->framesize;
}
- while (gst_adapter_available (rp->adapter) >= buffersize) {
+ while (buffersize > 0 && gst_adapter_available (rp->adapter) >= buffersize) {
buffer = gst_adapter_take_buffer (rp->adapter, buffersize);
ret = gst_raw_parse_push_buffer (rp, buffer);