summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--gst-libs/gst/play/play.c10
2 files changed, 18 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 76d62af7..ec86a2c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-02-01 Julien MOUTTE <julien@moutte.net>
+
+ * gst-libs/gst/play/play.c: (gst_play_seek_to_time),
+ (gst_play_new): Accepting NULL GError, blocking time tick while seeking.
+ * sys/ximage/ximagesink.c: (gst_ximagesink_sink_link),
+ (gst_ximagesink_chain), (gst_ximagesink_init): s/sinkconnect/sink_link
+ * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link),
+ (gst_xvimagesink_chain), (gst_xvimagesink_init): s/sinkconnect/sink_link
+
2004-02-01 Thomas Vander Stichele <thomas at apestaart dot org>
* configure.ac:
diff --git a/gst-libs/gst/play/play.c b/gst-libs/gst/play/play.c
index a7a04a05..ba100fb3 100644
--- a/gst-libs/gst/play/play.c
+++ b/gst-libs/gst/play/play.c
@@ -671,6 +671,10 @@ gst_play_seek_to_time (GstPlay * play, gint64 time_nanos)
GST_IS_ELEMENT (audio_sink_element)) {
gboolean s = FALSE;
+ /* We block the tick signal while seeking */
+ if (play->priv->tick_id)
+ g_signal_handler_block (G_OBJECT (play), play->priv->tick_id);
+
s = gst_element_seek (video_seek_element, GST_FORMAT_TIME |
GST_SEEK_METHOD_SET | GST_SEEK_FLAG_FLUSH,
time_nanos);
@@ -680,6 +684,10 @@ gst_play_seek_to_time (GstPlay * play, gint64 time_nanos)
time_nanos);
}
+ /* We unblock the tick signal after seeking */
+ if (play->priv->tick_id)
+ g_signal_handler_unblock (G_OBJECT (play), play->priv->tick_id);
+
if (s) {
GstFormat format = GST_FORMAT_TIME;
gboolean q = FALSE;
@@ -1125,7 +1133,7 @@ gst_play_new (GError **error)
{
GstPlay *play = g_object_new (GST_TYPE_PLAY, NULL);
- if (play->priv->error)
+ if ( (error) && (play->priv->error) )
{
*error = play->priv->error;
play->priv->error = NULL;