From 8e1e45ab70ce8751fc85693b95dc2ac74d7e3d31 Mon Sep 17 00:00:00 2001 From: Doug Nazar Date: Mon, 19 Apr 2021 01:29:33 -0400 Subject: [PATCH] rtspsrc: Fix race saving seek event seqnum. We need to save the seek seqnum before the flush stop event since that will start the basesrc task which may send the segment event before we're ready. Part-of: --- gst/rtsp/gstrtspsrc.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c index 716fec630..db0361ded 100644 --- a/gst/rtsp/gstrtspsrc.c +++ b/gst/rtsp/gstrtspsrc.c @@ -2876,6 +2876,11 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) /* PLAY will add the range header now. */ src->need_range = TRUE; + /* If an accurate seek was requested, we want to clip the segment we + * output in ONVIF mode to the requested bounds */ + src->clip_out_segment = ! !(flags & GST_SEEK_FLAG_ACCURATE); + src->seek_seqnum = gst_event_get_seqnum (event); + /* prepare for streaming again */ if (flush) { /* if we started flush, we stop now */ @@ -2928,11 +2933,6 @@ gst_rtspsrc_perform_seek (GstRTSPSrc * src, GstEvent * event) seek_style = "Next"; } - /* If an accurate seek was requested, we want to clip the segment we - * output in ONVIF mode to the requested bounds */ - src->clip_out_segment = ! !(flags & GST_SEEK_FLAG_ACCURATE); - src->seek_seqnum = gst_event_get_seqnum (event); - if (playing) gst_rtspsrc_play (src, &seeksegment, FALSE, seek_style); -- GitLab