From: Wim Taymans Date: Wed, 9 Sep 2009 16:24:44 +0000 (+0200) Subject: baseaudiosink: take clock time in setcaps X-Git-Tag: 1.19.3~511^2~9211 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=06be2b8632ceb0b5db560a68de77c08476687547;p=platform%2Fupstream%2Fgstreamer.git baseaudiosink: take clock time in setcaps Take the time of the clock so that the last_time field is set. This is important for sinks that restart their internal ringbuffer after a caps change and need to know the last know position. --- diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index 5c6a959..afa62c3 100644 --- a/gst-libs/gst/audio/gstbaseaudiosink.c +++ b/gst-libs/gst/audio/gstbaseaudiosink.c @@ -625,6 +625,7 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) { GstBaseAudioSink *sink = GST_BASE_AUDIO_SINK (bsink); GstRingBufferSpec *spec; + GstClockTime now; if (!sink->ringbuffer) return FALSE; @@ -633,6 +634,11 @@ gst_base_audio_sink_setcaps (GstBaseSink * bsink, GstCaps * caps) GST_DEBUG_OBJECT (sink, "release old ringbuffer"); + /* get current time, updates the last_time */ + now = gst_clock_get_time (sink->provided_clock); + + GST_DEBUG_OBJECT (sink, "time was %" GST_TIME_FORMAT, GST_TIME_ARGS (now)); + /* release old ringbuffer */ gst_ring_buffer_pause (sink->ringbuffer); gst_ring_buffer_activate (sink->ringbuffer, FALSE);