From 0c964dd3483c3baa8b56651e0848058607fac335 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Wed, 9 Jan 2008 12:25:17 +0000 Subject: [PATCH] libs/gst/base/gstbasesrc.c: The start segment for reverse playback goes from start to last_stop. Original commit message from CVS: * 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. --- ChangeLog | 6 ++++++ libs/gst/base/gstbasesrc.c | 17 +++++++++++++---- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index ea949ff..08a1ed2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2008-01-09 Wim Taymans + * 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 + Patch by: Peter Kjellerstedt * gst/gstclock.h: diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 3cc0520..c92175d 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -1199,10 +1199,19 @@ gst_base_src_perform_seek (GstBaseSrc * src, GstEvent * event, gboolean unlock) * 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; -- 2.7.4