diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-10-22 15:07:04 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-10-22 15:07:04 +0200 |
commit | 1dd83ca6ee76834a18fc6152493ace44a0fd8bed (patch) | |
tree | a573c7fb4fd276aa87ce5c8ac411a68c7e043003 | |
parent | ee0ccf64c59ab8003ebe30f00635d65858fc3d29 (diff) | |
download | gstreamer-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.
-rw-r--r-- | gst/rawparse/gstrawparse.c | 7 |
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); |