segment: don't use duration in clipping
authorWim Taymans <wim.taymans@collabora.co.uk>
Mon, 20 Feb 2012 13:29:30 +0000 (14:29 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Mon, 20 Feb 2012 13:39:26 +0000 (14:39 +0100)
Don't use the duration in the segment for calculating clipping values.
The duration is expressed in stream time and clipping is done on unrelated
timestamp values.
This used to be interesting for elements that used the segment structure to
implement seeking because then they would use stream-time for the segment
start/stop values and the duration could be used as a fallback when the stop
position was not set. Now that the complete segment event is passed between
elements we cannot do this anymore because some elements might store the
duration and start/stop values with different time bases in the segment.

gst/gstsegment.c

index 64aa09d..a3b57b8 100644 (file)
@@ -562,9 +562,6 @@ gst_segment_clip (const GstSegment * segment, GstFormat format, guint64 start,
       *clip_stop = stop;
     else
       *clip_stop = MIN (stop, segment->stop);
-
-    if (segment->duration != -1 && *clip_stop != -1)
-      *clip_stop = MIN (*clip_stop, segment->duration);
   }
 
   return TRUE;