summaryrefslogtreecommitdiff
path: root/gst/rawparse
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-10-22 15:07:04 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-10-22 15:07:04 +0200
commit1dd83ca6ee76834a18fc6152493ace44a0fd8bed (patch)
treea573c7fb4fd276aa87ce5c8ac411a68c7e043003 /gst/rawparse
parentee0ccf64c59ab8003ebe30f00635d65858fc3d29 (diff)
downloadgstreamer-plugins-bad-1dd83ca6ee76834a18fc6152493ace44a0fd8bed.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.
Diffstat (limited to 'gst/rawparse')
-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 198bed52b..5831293ce 100644
--- a/gst/rawparse/gstrawparse.c
+++ b/gst/rawparse/gstrawparse.c
@@ -307,17 +307,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);