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>
case GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC:
GST_DEBUG_OBJECT (stream, "Lost sync, asking reset to current position");
stream->state = GST_ADAPTIVE_DEMUX2_STREAM_STATE_STOPPED;
- gst_adaptive_demux_loop_call (demux->priv->scheduler_task,
- (GSourceFunc) gst_adaptive_demux_handle_lost_sync, demux, NULL);
+ gst_adaptive_demux_handle_lost_sync (demux);
return FALSE;
case GST_FLOW_NOT_LINKED:
{
}
}
+ if (ret == GST_ADAPTIVE_DEMUX_FLOW_LOST_SYNC)
+ gst_adaptive_demux_handle_lost_sync (demux);
+
if (schedule_again) {
GstAdaptiveDemuxClass *klass = GST_ADAPTIVE_DEMUX_GET_CLASS (demux);