summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2007-01-29 15:36:36 +0000
committerBastien Nocera <hadess@src.gnome.org>2007-01-29 15:36:36 +0000
commit6eb2cd23febf7865e18ebedd18a1e15085feec73 (patch)
tree43ce7ceb31196b958c5b64de372842776d06b885
parent312817d0bf3f1f74ce85ef19b2aab998278b2acf (diff)
downloadtotem-6eb2cd23febf7865e18ebedd18a1e15085feec73.tar.gz
Add change from trunk, EOS when seeking past the end of a stream
2007-01-29 Bastien Nocera <hadess@hadess.net> * src/backend/bacon-video-widget-gst-0.10.c: (bacon_video_widget_seek_time): Add change from trunk, EOS when seeking past the end of a stream svn path=/branches/gnome-2-16/; revision=3957
-rw-r--r--ChangeLog6
-rw-r--r--src/backend/bacon-video-widget-gst-0.10.c11
2 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 226b44889..c0e0047b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-01-29 Bastien Nocera <hadess@hadess.net>
+
+ * src/backend/bacon-video-widget-gst-0.10.c:
+ (bacon_video_widget_seek_time): Add change from trunk, EOS
+ when seeking past the end of a stream
+
2007-01-10 Tim-Philipp Müller <tim at centricular dot net>
* src/backend/bacon-video-widget-gst-0.10.c:
diff --git a/src/backend/bacon-video-widget-gst-0.10.c b/src/backend/bacon-video-widget-gst-0.10.c
index 90e227963..d1991272b 100644
--- a/src/backend/bacon-video-widget-gst-0.10.c
+++ b/src/backend/bacon-video-widget-gst-0.10.c
@@ -2524,9 +2524,18 @@ bacon_video_widget_seek_time (BaconVideoWidget *bvw, gint64 time, GError **gerro
GST_LOG ("Seeking to %" GST_TIME_FORMAT, GST_TIME_ARGS (time * GST_MSECOND));
+ if (time > bvw->priv->stream_length
+ && bvw->priv->stream_length > 0
+ && !g_str_has_prefix (bvw->priv->mrl, "dvd:")
+ && !g_str_has_prefix (bvw->priv->mrl, "vcd:")) {
+ if (bvw->priv->eos_id == 0)
+ bvw->priv->eos_id = g_idle_add (bvw_signal_eos_delayed, bvw);
+ return TRUE;
+ }
+
/* Emit a time tick of where we are going, we are paused */
got_time_tick (bvw->priv->play, time * GST_MSECOND, bvw);
-
+
gst_element_seek (bvw->priv->play, 1.0,
GST_FORMAT_TIME, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT,
GST_SEEK_TYPE_SET, time * GST_MSECOND,