tools: gst-play: fix seeking issue
authorVineeth T M <vineeth.tm@samsung.com>
Fri, 19 Jun 2015 10:51:25 +0000 (19:51 +0900)
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Fri, 19 Jun 2015 14:09:24 +0000 (10:09 -0400)
For positive seeking segment.stop value will be -1,
when we change rate to -1, then the stop value will be udpated
with the current position. And then again if we change rate to 1,
the segment.stop value does not get updated and remains as position
where we last changed rate to -1. Hence playback stops at that point.
In case of positive rates, call gst_element_new_seek with correct values

https://bugzilla.gnome.org/show_bug.cgi?id=751213

tools/gst-play.c

index a6ea68b..8b299a0 100644 (file)
@@ -801,11 +801,11 @@ play_do_seek (GstPlay * play, gint64 pos, gdouble rate, GstPlayTrickMode mode)
       break;
   }
 
-  if (rate > 0)
+  if (rate >= 0)
     seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
-        seek_flags | GST_SEEK_FLAG_KEY_UNIT,
+        seek_flags | GST_SEEK_FLAG_ACCURATE,
         /* start */ GST_SEEK_TYPE_SET, pos,
-        /* stop */ GST_SEEK_TYPE_NONE, 0);
+        /* stop */ GST_SEEK_TYPE_SET, GST_CLOCK_TIME_NONE);
   else
     seek = gst_event_new_seek (rate, GST_FORMAT_TIME,
         seek_flags | GST_SEEK_FLAG_ACCURATE,