tools: gst-play: seek at least in steps of a second

In case of very short files we might end up seeking in
steps of a fraction of a second, which is silly and gives
the impression that seeking doesn't actually work. Make
minimum seek step a second instead.
This commit is contained in:
Tim-Philipp Müller 2015-07-24 10:15:21 +01:00
parent f9e6d38bf9
commit 2b0e71f4de

View file

@ -708,7 +708,7 @@ relative_seek (GstPlay * play, gdouble percent)
{
GstQuery *query;
gboolean seekable = FALSE;
gint64 dur = -1, pos = -1;
gint64 dur = -1, pos = -1, step;
g_return_if_fail (percent >= -1.0 && percent <= 1.0);
@ -727,7 +727,11 @@ relative_seek (GstPlay * play, gdouble percent)
if (!seekable || dur <= 0)
goto seek_failed;
pos = pos + dur * percent;
step = dur * percent;
if (ABS (step) < GST_SECOND)
step = (percent < 0) ? -GST_SECOND : GST_SECOND;
pos = pos + step;
if (pos > dur) {
if (!play_next (play)) {
g_print ("\n%s\n", _("Reached end of play list."));