gstsegment: Refuse instant-rate seeks in gst_segment_do_seek()
authorJan Schmidt <jan@centricular.com>
Fri, 22 Nov 2019 12:55:56 +0000 (23:55 +1100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 26 Mar 2020 13:51:41 +0000 (13:51 +0000)
Elements that pass a seek with INSTANT_RATE flag to
gst_segment_do_seek() haven't been updated and we should
refuse the seek.

gst/gstsegment.c

index 035e464..f397707 100644 (file)
@@ -241,6 +241,11 @@ gst_segment_do_seek (GstSegment * segment, gdouble rate,
   g_return_val_if_fail (segment != NULL, FALSE);
   g_return_val_if_fail (segment->format == format, FALSE);
 
+  /* Elements should not pass instant-rate seeks to gst_segment_do_seek().
+   * This helps catch elements that have not been updated yet */
+  if (flags & GST_SEEK_FLAG_INSTANT_RATE_CHANGE)
+    return FALSE;
+
   update_start = update_stop = TRUE;
 
   position = segment->position;