diff --git a/gst-libs/gst/audio/gstbaseaudiosink.c b/gst-libs/gst/audio/gstbaseaudiosink.c index 4b40a5e31e..218984ac40 100644 --- a/gst-libs/gst/audio/gstbaseaudiosink.c +++ b/gst-libs/gst/audio/gstbaseaudiosink.c @@ -272,9 +272,8 @@ gst_base_audio_sink_init (GstBaseAudioSink * baseaudiosink, baseaudiosink->provide_clock = DEFAULT_PROVIDE_CLOCK; baseaudiosink->priv->slave_method = DEFAULT_SLAVE_METHOD; - baseaudiosink->provided_clock = gst_audio_clock_new_full ("GstAudioSinkClock", - (GstAudioClockGetTimeFunc) gst_base_audio_sink_get_time, - gst_object_ref (baseaudiosink), (GDestroyNotify) gst_object_unref); + baseaudiosink->provided_clock = gst_audio_clock_new ("GstAudioSinkClock", + (GstAudioClockGetTimeFunc) gst_base_audio_sink_get_time, baseaudiosink); GST_BASE_SINK (baseaudiosink)->can_activate_push = TRUE; GST_BASE_SINK (baseaudiosink)->can_activate_pull = DEFAULT_CAN_ACTIVATE_PULL; @@ -311,9 +310,11 @@ gst_base_audio_sink_dispose (GObject * object) sink = GST_BASE_AUDIO_SINK (object); - if (sink->provided_clock) + if (sink->provided_clock) { + gst_audio_clock_invalidate (sink->provided_clock); gst_object_unref (sink->provided_clock); - sink->provided_clock = NULL; + sink->provided_clock = NULL; + } if (sink->ringbuffer) { gst_object_unparent (GST_OBJECT_CAST (sink->ringbuffer)); diff --git a/gst-libs/gst/audio/gstbaseaudiosrc.c b/gst-libs/gst/audio/gstbaseaudiosrc.c index b870ff4c4c..a12dd59fec 100644 --- a/gst-libs/gst/audio/gstbaseaudiosrc.c +++ b/gst-libs/gst/audio/gstbaseaudiosrc.c @@ -250,9 +250,8 @@ gst_base_audio_src_init (GstBaseAudioSrc * baseaudiosrc, * value based on negotiated format. */ GST_BASE_SRC (baseaudiosrc)->blocksize = 0; - baseaudiosrc->clock = gst_audio_clock_new_full ("GstAudioSrcClock", - (GstAudioClockGetTimeFunc) gst_base_audio_src_get_time, - gst_object_ref (baseaudiosrc), (GDestroyNotify) gst_object_unref); + baseaudiosrc->clock = gst_audio_clock_new ("GstAudioSrcClock", + (GstAudioClockGetTimeFunc) gst_base_audio_src_get_time, baseaudiosrc); /* we are always a live source */ gst_base_src_set_live (GST_BASE_SRC (baseaudiosrc), TRUE); @@ -268,9 +267,11 @@ gst_base_audio_src_dispose (GObject * object) src = GST_BASE_AUDIO_SRC (object); GST_OBJECT_LOCK (src); - if (src->clock) + if (src->clock) { + gst_audio_clock_invalidate (src->clock); gst_object_unref (src->clock); - src->clock = NULL; + src->clock = NULL; + } if (src->ringbuffer) { gst_object_unparent (GST_OBJECT_CAST (src->ringbuffer));