From b802dea8319014f94fb9b02a7330ae0d9472bc7f Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Thu, 5 Apr 2007 15:44:40 +0000 Subject: [PATCH] gst-libs/gst/audio/gstbaseaudiosink.c: Don't try to create invalid calibration parameters by making the internal time... Original commit message from CVS: * gst-libs/gst/audio/gstbaseaudiosink.c: (gst_base_audio_sink_skew_slaving): Don't try to create invalid calibration parameters by making the internal time go backwards, instead make external time go forward. --- ChangeLog | 7 +++++++ gst-libs/gst/audio/gstbaseaudiosink.c | 6 +++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1fdc290..6f85981 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2007-04-05 Wim Taymans + * gst-libs/gst/audio/gstbaseaudiosink.c: + (gst_base_audio_sink_skew_slaving): + Don't try to create invalid calibration parameters by making the + internal time go backwards, instead make external time go forward. + +2007-04-05 Wim Taymans + Patch by: Tommi Myöhänen * gst/playback/gstplaybasebin.c: (add_stream): diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index adacbbc..a01666e 100644 --- a/gst-libs/gst/audio/gstbaseaudiosink.c +++ b/gst-libs/gst/audio/gstbaseaudiosink.c @@ -787,7 +787,7 @@ gst_base_audio_sink_skew_slaving (GstBaseAudioSink * sink, /* adjust playout pointer based on skew */ if (sink->priv->avg_skew > segtime) { - /* master is running slower */ + /* master is running slower, move internal time forward */ GST_WARNING_OBJECT (sink, "correct clock skew %" G_GINT64_FORMAT " > %" G_GINT64_FORMAT, sink->priv->avg_skew, segtime); @@ -797,11 +797,11 @@ gst_base_audio_sink_skew_slaving (GstBaseAudioSink * sink, gst_clock_set_calibration (sink->provided_clock, cinternal, cexternal, crate_num, crate_denom); } else if (sink->priv->avg_skew < -segtime) { - /* master is running faster */ + /* master is running faster, move external time forwards */ GST_WARNING_OBJECT (sink, "correct clock skew %" G_GINT64_FORMAT " < %" G_GINT64_FORMAT, sink->priv->avg_skew, -segtime); - cinternal -= segtime; + cexternal += segtime; sink->priv->avg_skew += segtime; sink->next_sample = -1; gst_clock_set_calibration (sink->provided_clock, cinternal, cexternal, -- 2.7.4