adder: only send flush_stop when seek failed
This is still not the ultimate fix. Added some comment to explain the troubles.
This commit is contained in:
parent
c68a361e31
commit
4228ba0c6b
@ -672,13 +672,20 @@ gst_adder_src_event (GstPad * pad, GstEvent * event)
|
|||||||
else
|
else
|
||||||
adder->segment_position = 0;
|
adder->segment_position = 0;
|
||||||
adder->segment_pending = TRUE;
|
adder->segment_pending = TRUE;
|
||||||
adder->flush_stop_pending =
|
|
||||||
((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH);
|
|
||||||
GST_OBJECT_UNLOCK (adder->collect);
|
GST_OBJECT_UNLOCK (adder->collect);
|
||||||
GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
|
GST_DEBUG_OBJECT (adder, "forwarding seek event: %" GST_PTR_FORMAT,
|
||||||
event);
|
event);
|
||||||
|
|
||||||
result = forward_event (adder, event);
|
result = forward_event (adder, event);
|
||||||
|
if (result) {
|
||||||
|
/* seek failed. maybe source is a live source. send a flush_stop
|
||||||
|
* FIXME: ideally we just forward flush event, but live sources don't
|
||||||
|
* send anything and we need a flush events to unlock the collect
|
||||||
|
* function
|
||||||
|
*/
|
||||||
|
adder->flush_stop_pending =
|
||||||
|
((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GST_EVENT_QOS:
|
case GST_EVENT_QOS:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user