From 7f7a210b84025dd01af4f0b1d0c4bfa9eb1c6603 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 12 Jul 2018 19:01:54 +0100 Subject: [PATCH] media-factory: unref old clock when setting new clock https://bugzilla.gnome.org/show_bug.cgi?id=796724 --- gst/rtsp-server/rtsp-media-factory.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gst/rtsp-server/rtsp-media-factory.c b/gst/rtsp-server/rtsp-media-factory.c index 6df726f..a4f10dd 100644 --- a/gst/rtsp-server/rtsp-media-factory.c +++ b/gst/rtsp-server/rtsp-media-factory.c @@ -1380,13 +1380,14 @@ void gst_rtsp_media_factory_set_clock (GstRTSPMediaFactory * factory, GstClock * clock) { - GstRTSPMediaFactoryPrivate *priv; + GstClock **clock_p; + g_return_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory)); g_return_if_fail (GST_IS_CLOCK (clock) || clock == NULL); GST_RTSP_MEDIA_FACTORY_LOCK (factory); - priv = factory->priv; - priv->clock = clock ? gst_object_ref (clock) : NULL; + clock_p = &factory->priv->clock; + gst_object_replace ((GstObject **) clock_p, (GstObject *) clock); GST_RTSP_MEDIA_FACTORY_UNLOCK (factory); } @@ -1407,6 +1408,8 @@ gst_rtsp_media_factory_get_clock (GstRTSPMediaFactory * factory) GstRTSPMediaFactoryPrivate *priv; GstClock *ret; + g_return_val_if_fail (GST_IS_RTSP_MEDIA_FACTORY (factory), NULL); + GST_RTSP_MEDIA_FACTORY_LOCK (factory); priv = factory->priv; ret = priv->clock ? gst_object_ref (priv->clock) : NULL; -- 2.7.4