From a0283af747eb72ba84298d2a264f957fc4fb8ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 19 Jan 2008 15:53:38 +0000 Subject: gst/rawparse/gstrawparse.c: Improve handling of unknown or too small upstream sizes in pull mode. Original commit message from CVS: * gst/rawparse/gstrawparse.c: (gst_raw_parse_loop): Improve handling of unknown or too small upstream sizes in pull mode. --- gst/rawparse/gstrawparse.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'gst') diff --git a/gst/rawparse/gstrawparse.c b/gst/rawparse/gstrawparse.c index 16a6b9f7..be7549b0 100644 --- a/gst/rawparse/gstrawparse.c +++ b/gst/rawparse/gstrawparse.c @@ -304,13 +304,14 @@ gst_raw_parse_loop (GstElement * element) if (rp->offset + size > rp->upstream_length) { GstFormat fmt = GST_FORMAT_BYTES; - if (!gst_pad_query_peer_duration (rp->sinkpad, &fmt, &rp->upstream_length) - || rp->upstream_length < rp->offset + rp->framesize) { + if (!gst_pad_query_peer_duration (rp->sinkpad, &fmt, &rp->upstream_length)) { + GST_WARNING_OBJECT (rp, + "Could not get upstream duration, trying to pull frame by frame"); + size = rp->framesize; + } else if (rp->upstream_length < rp->offset + rp->framesize) { ret = GST_FLOW_UNEXPECTED; goto pause; - } - - if (rp->offset + size > rp->upstream_length) { + } else if (rp->offset + size > rp->upstream_length) { size = rp->upstream_length - rp->offset; size -= size % rp->framesize; } -- cgit v1.2.1