From: Tim-Philipp Müller Date: Thu, 12 Jul 2018 18:01:54 +0000 (+0100) Subject: media-factory: unref old clock when setting new clock X-Git-Tag: 1.16.2~89 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7f7a210b84025dd01af4f0b1d0c4bfa9eb1c6603;p=platform%2Fupstream%2Fgst-rtsp-server.git media-factory: unref old clock when setting new clock https://bugzilla.gnome.org/show_bug.cgi?id=796724 --- 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;