2008-01-09 Wim Taymans <wim.taymans@collabora.co.uk>
+ * libs/gst/base/gstbasesrc.c: (gst_base_src_perform_seek),
+ (gst_base_src_loop):
+ The start segment for reverse playback goes from start to last_stop.
+
+2008-01-09 Wim Taymans <wim.taymans@collabora.co.uk>
+
Patch by: Peter Kjellerstedt <pkj axis com>
* gst/gstclock.h:
* next time it is scheduled. */
if (src->priv->start_segment)
gst_event_unref (src->priv->start_segment);
- src->priv->start_segment =
- gst_event_new_new_segment_full (FALSE,
- src->segment.rate, src->segment.applied_rate, src->segment.format,
- src->segment.last_stop, stop, src->segment.time);
+ if (src->segment.rate >= 0.0) {
+ /* forward, we send data from last_stop to stop */
+ src->priv->start_segment =
+ gst_event_new_new_segment_full (FALSE,
+ src->segment.rate, src->segment.applied_rate, src->segment.format,
+ src->segment.last_stop, stop, src->segment.time);
+ } else {
+ /* reverse, we send data from stop to last_stop */
+ src->priv->start_segment =
+ gst_event_new_new_segment_full (FALSE,
+ src->segment.rate, src->segment.applied_rate, src->segment.format,
+ src->segment.start, src->segment.last_stop, src->segment.time);
+ }
}
src->priv->discont = TRUE;