libs/gst/base/gstbasesink.c: Take current playback rate into account when reporting...
authorWim Taymans <wim.taymans@gmail.com>
Mon, 12 Dec 2005 10:16:11 +0000 (10:16 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 12 Dec 2005 10:16:11 +0000 (10:16 +0000)
Original commit message from CVS:
* libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
Take current playback rate into account when reporting
the position.

ChangeLog
libs/gst/base/gstbasesink.c

index 8427d12..a6e1920 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-12  Wim Taymans  <wim@fluendo.com>
+
+       * libs/gst/base/gstbasesink.c: (gst_base_sink_get_position):
+       Take current playback rate into account when reporting
+       the position.
+
 2005-12-11  Tim-Philipp Müller  <tim at centricular dot net>
 
        * docs/manual/mime-world.fig:
index d93307c..382a2be 100644 (file)
@@ -1366,7 +1366,9 @@ gst_base_sink_get_position (GstBaseSink * basesink, GstFormat format,
           time = 0;
 
         base = GST_ELEMENT_CAST (basesink)->base_time;
-        *cur = now - base - basesink->segment.accum + time;
+        base += basesink->segment.accum;
+        base = MIN (now, base);
+        *cur = (now - base) * basesink->segment.abs_rate + time;
 
         GST_DEBUG_OBJECT (basesink,
             "now %" GST_TIME_FORMAT " - base %" GST_TIME_FORMAT " - accum %"