From 6300c130df1fa09b234425d2026ca1639a13f956 Mon Sep 17 00:00:00 2001 From: Julien Moutte Date: Sun, 1 Feb 2004 22:33:07 +0000 Subject: [PATCH] gst-libs/gst/play/play.c: s/sinkconnect/sink_link Original commit message from CVS: 2004-02-01 Julien MOUTTE * 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 --- ChangeLog | 9 +++++++++ gst-libs/gst/play/play.c | 10 +++++++++- sys/ximage/ximagesink.c | 6 +++--- sys/xvimage/xvimagesink.c | 6 +++--- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 76d62af734..ec86a2c81f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2004-02-01 Julien MOUTTE + + * 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 * configure.ac: diff --git a/gst-libs/gst/play/play.c b/gst-libs/gst/play/play.c index a7a04a05d2..ba100fb3df 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; diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c index 43ec76488c..bd08c1acf8 100644 --- a/sys/ximage/ximagesink.c +++ b/sys/ximage/ximagesink.c @@ -691,7 +691,7 @@ gst_ximagesink_getcaps (GstPad *pad) } static GstPadLinkReturn -gst_ximagesink_sinkconnect (GstPad *pad, const GstCaps *caps) +gst_ximagesink_sink_link (GstPad *pad, const GstCaps *caps) { GstXImageSink *ximagesink; char *caps_str1, *caps_str2; @@ -844,7 +844,7 @@ gst_ximagesink_chain (GstPad *pad, GstData *data) ximagesink->time = GST_BUFFER_TIMESTAMP (buf); } GST_DEBUG ("videosink: clock wait: %" G_GUINT64_FORMAT, ximagesink->time); - + if (GST_VIDEOSINK_CLOCK (ximagesink)) { gst_element_wait (GST_ELEMENT (ximagesink), ximagesink->time); } @@ -1251,7 +1251,7 @@ gst_ximagesink_init (GstXImageSink *ximagesink) gst_pad_set_chain_function (GST_VIDEOSINK_PAD (ximagesink), gst_ximagesink_chain); gst_pad_set_link_function (GST_VIDEOSINK_PAD (ximagesink), - gst_ximagesink_sinkconnect); + gst_ximagesink_sink_link); gst_pad_set_getcaps_function (GST_VIDEOSINK_PAD (ximagesink), gst_ximagesink_getcaps); gst_pad_set_fixate_function (GST_VIDEOSINK_PAD (ximagesink), diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c index 7f43057c03..62c9686d11 100644 --- a/sys/xvimage/xvimagesink.c +++ b/sys/xvimage/xvimagesink.c @@ -1001,7 +1001,7 @@ gst_xvimagesink_getcaps (GstPad *pad) } static GstPadLinkReturn -gst_xvimagesink_sinkconnect (GstPad *pad, const GstCaps *caps) +gst_xvimagesink_sink_link (GstPad *pad, const GstCaps *caps) { GstXvImageSink *xvimagesink; char *caps_str1, *caps_str2; @@ -1162,7 +1162,7 @@ gst_xvimagesink_chain (GstPad *pad, GstData *data) xvimagesink->time = GST_BUFFER_TIMESTAMP (buf); } GST_DEBUG ("videosink: clock wait: %" G_GUINT64_FORMAT, xvimagesink->time); - + if (GST_VIDEOSINK_CLOCK (xvimagesink)) { gst_element_wait (GST_ELEMENT (xvimagesink), xvimagesink->time); } @@ -1676,7 +1676,7 @@ gst_xvimagesink_init (GstXvImageSink *xvimagesink) gst_pad_set_chain_function (GST_VIDEOSINK_PAD (xvimagesink), gst_xvimagesink_chain); gst_pad_set_link_function (GST_VIDEOSINK_PAD (xvimagesink), - gst_xvimagesink_sinkconnect); + gst_xvimagesink_sink_link); gst_pad_set_getcaps_function (GST_VIDEOSINK_PAD (xvimagesink), gst_xvimagesink_getcaps); gst_pad_set_fixate_function (GST_VIDEOSINK_PAD (xvimagesink),