mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 06:16:36 +00:00
adaptivedemux2: Handle synchronously to lost sync
We are already in the main scheduler thread, therefore we can do the "seek back to live" directly. This also avoids other pending actions to take place. Also handle the loss of sync when doing manifest updates. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2839>
This commit is contained in:
parent
1aab9db803
commit
abe5a06421
2 changed files with 4 additions and 2 deletions
|
@ -1731,8 +1731,7 @@ gst_adaptive_demux2_stream_load_a_fragment (GstAdaptiveDemux2Stream * stream)
|
||||||
case GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC:
|
case GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC:
|
||||||
GST_DEBUG_OBJECT (stream, "Lost sync, asking reset to current position");
|
GST_DEBUG_OBJECT (stream, "Lost sync, asking reset to current position");
|
||||||
stream->state = GST_ADAPTIVE_DEMUX2_STREAM_STATE_STOPPED;
|
stream->state = GST_ADAPTIVE_DEMUX2_STREAM_STATE_STOPPED;
|
||||||
gst_adaptive_demux_loop_call (demux->priv->scheduler_task,
|
gst_adaptive_demux_handle_lost_sync (demux);
|
||||||
(GSourceFunc) gst_adaptive_demux_handle_lost_sync, demux, NULL);
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
case GST_FLOW_NOT_LINKED:
|
case GST_FLOW_NOT_LINKED:
|
||||||
{
|
{
|
||||||
|
|
|
@ -3157,6 +3157,9 @@ gst_adaptive_demux_manifest_update_cb (GstAdaptiveDemux * demux)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ret == GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC)
|
||||||
|
gst_adaptive_demux_handle_lost_sync (demux);
|
||||||
|
|
||||||
if (schedule_again) {
|
if (schedule_again) {
|
||||||
GstAdaptiveDemuxClass *klass = GST_ADAPTIVE_DEMUX_GET_CLASS (demux);
|
GstAdaptiveDemuxClass *klass = GST_ADAPTIVE_DEMUX_GET_CLASS (demux);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue