From d655120ee6dc80c779f7a6d9fd073789524fac87 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 17 Apr 2009 10:54:31 +0200 Subject: [PATCH] audioclock: make sure values are ever increasing --- gst-libs/gst/audio/gstaudioclock.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gst-libs/gst/audio/gstaudioclock.c b/gst-libs/gst/audio/gstaudioclock.c index 9a439f1..06ac8b3 100644 --- a/gst-libs/gst/audio/gstaudioclock.c +++ b/gst-libs/gst/audio/gstaudioclock.c @@ -165,12 +165,21 @@ gst_audio_clock_get_internal_time (GstClock * clock) aclock = GST_AUDIO_CLOCK_CAST (clock); result = aclock->func (clock, aclock->user_data); - if (result == GST_CLOCK_TIME_NONE) + if (result == GST_CLOCK_TIME_NONE) { result = aclock->last_time; - else { + } else { result += aclock->abidata.ABI.time_offset; - aclock->last_time = result; + /* clock must be increasing */ + if (aclock->last_time < result) + aclock->last_time = result; + else + result = aclock->last_time; } + + GST_DEBUG_OBJECT (clock, + "result %" GST_TIME_FORMAT ", last_time %" GST_TIME_FORMAT, + GST_TIME_ARGS (result), GST_TIME_ARGS (aclock->last_time)); + return result; } -- 2.7.4