baseparse: Update internal position even if not linked
authorEdward Hervey <edward@centricular.com>
Mon, 12 Oct 2015 15:29:26 +0000 (17:29 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Mon, 12 Oct 2015 15:30:38 +0000 (17:30 +0200)
Our current position has nothing to do with being linked or not.

Avoids having stray segment updates fired every 2s

libs/gst/base/gstbaseparse.c

index 80334fb..c9a57c5 100644 (file)
@@ -2448,8 +2448,9 @@ gst_base_parse_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
   }
 
   /* Update current running segment position */
-  if (ret == GST_FLOW_OK && last_stop != GST_CLOCK_TIME_NONE &&
-      parse->segment.position < last_stop)
+  if ((ret == GST_FLOW_OK || ret == GST_FLOW_NOT_LINKED)
+      && last_stop != GST_CLOCK_TIME_NONE
+      && parse->segment.position < last_stop)
     parse->segment.position = last_stop;
 
   return ret;