mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
basesink: recompute correct running time for buffer ending flushing step
Prevents delaying/hanging when resuming PLAYING. Fixes #632433.
This commit is contained in:
parent
b0d7c61f18
commit
21c5064783
1 changed files with 7 additions and 0 deletions
|
@ -1889,6 +1889,7 @@ gst_base_sink_get_sync_times (GstBaseSink * basesink, GstMiniObject * obj,
|
||||||
|
|
||||||
eos = FALSE;
|
eos = FALSE;
|
||||||
|
|
||||||
|
again:
|
||||||
/* else do buffer sync code */
|
/* else do buffer sync code */
|
||||||
buffer = GST_BUFFER_CAST (obj);
|
buffer = GST_BUFFER_CAST (obj);
|
||||||
|
|
||||||
|
@ -1978,6 +1979,12 @@ eos_done:
|
||||||
GST_DEBUG_OBJECT (basesink, "flushing step ended");
|
GST_DEBUG_OBJECT (basesink, "flushing step ended");
|
||||||
stop_stepping (basesink, segment, step, rstart, rstop, eos);
|
stop_stepping (basesink, segment, step, rstart, rstop, eos);
|
||||||
*step_end = FALSE;
|
*step_end = FALSE;
|
||||||
|
/* re-determine running start times for adjusted segment
|
||||||
|
* (which has a flushed amount of running/accumulated time removed) */
|
||||||
|
if (!GST_IS_EVENT (obj)) {
|
||||||
|
GST_DEBUG_OBJECT (basesink, "refresh sync times");
|
||||||
|
goto again;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* save times */
|
/* save times */
|
||||||
|
|
Loading…
Reference in a new issue