diff options
author | Edward Hervey <bilboed@bilboed.com> | 2009-07-05 21:29:40 +0200 |
---|---|---|
committer | Edward Hervey <bilboed@bilboed.com> | 2009-07-05 21:32:20 +0200 |
commit | c3adf8862135050fd410a85000b0634e8e06f893 (patch) | |
tree | d54fa04a207bc93f62c4e306e3d504fa79d87810 /gst | |
parent | 04e23f2d6a3ca3b10e609e6084e52746c16e208a (diff) | |
download | gstreamer-plugins-base-c3adf8862135050fd410a85000b0634e8e06f893.tar.gz |
adder: Call set_flushing(TRUE) for flushing seeks *when* the streaming is stopped.
This ensures that collectpads' cookie is properly updated so that when the streaming
threads will restart and be checking for the flushing status of all pads there will
be no inconsistent state.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/adder/gstadder.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c index 5f93f5310..87e2d79ba 100644 --- a/gst/adder/gstadder.c +++ b/gst/adder/gstadder.c @@ -693,8 +693,12 @@ gst_adder_src_event (GstPad * pad, GstEvent * event) else adder->segment_position = 0; /* we flushed out the downstream segment, make sure we push a new one */ - if (flush) + if (flush) { adder->segment_pending = TRUE; + /* Yes, we need to call _set_flushing again *WHEN* the streaming threads + * have stopped so that the cookie gets properly updated. */ + gst_collect_pads_set_flushing (adder->collect, TRUE); + } /* we might have a pending flush_stop event now. This event will either be * sent by an upstream element when it completes the seek or we will push * one in the collected callback ourself */ |