From 40e3b0189a3195e655d0a481f911df5c3787d75c Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 20 Jan 2010 11:26:34 +0100 Subject: [PATCH] avidemux: reset on flush events When we receive a flush event on the sinkpad, reset the EOS state and the flowreturn of all streams. Also mark the streams with a DISCONT. --- gst/avi/gstavidemux.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c index 222dd40..07ff278 100644 --- a/gst/avi/gstavidemux.c +++ b/gst/avi/gstavidemux.c @@ -771,6 +771,18 @@ gst_avi_demux_handle_sink_event (GstPad * pad, GstEvent * event) } break; } + case GST_EVENT_FLUSH_STOP: + { + gint i; + + gst_adapter_clear (avi->adapter); + avi->have_eos = FALSE; + for (i = 0; i < avi->num_streams; i++) { + avi->stream[i].last_flow = GST_FLOW_OK; + avi->stream[i].discont = TRUE; + } + /* fall through to default case so that the event gets passed downstream */ + } default: res = gst_pad_event_default (pad, event); break; -- 2.7.4