From 01f0a5ce3271cc133dbb26a9dc5553ddd1c51726 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 26 Jan 2010 11:18:28 +0100 Subject: [PATCH] avidemux: ignore streams that finished When we receive an UNEXPECTED from a stream, move to the next stream and only go EOS when all streams are EOS. When selecting a stream to push, ignore streams that went EOS. Fixes #607949 --- gst/avi/gstavidemux.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 6c475136be..ac6914343a 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -4205,6 +4205,11 @@ gst_avi_demux_find_next (GstAviDemux * avi, gfloat rate) GstAviStream *stream; stream = &avi->stream[i]; + + /* ignore streams that finished */ + if (stream->last_flow == GST_FLOW_UNEXPECTED) + continue; + position = stream->current_timestamp; /* position of -1 is EOS */ @@ -4369,7 +4374,8 @@ eos_stop: " setting EOS (%" GST_TIME_FORMAT " > %" GST_TIME_FORMAT ")", GST_TIME_ARGS (timestamp), GST_TIME_ARGS (avi->segment.stop)); ret = GST_FLOW_UNEXPECTED; - goto beach; + /* move to next stream */ + goto next; } pull_failed: {