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;
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));
* 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);
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));