summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2018-02-05 17:41:25 +1100
committerMatthew Waters <matthew@centricular.com>2018-02-05 17:44:33 +1100
commitdc452aa799d80d5f28720e051ac4160a9cf58140 (patch)
treebf610543cc74b9bdd43ab9d23b0148573b36fb88 /ext
parent18a62b144d7b78302f255199ca26427180579fe9 (diff)
downloadgstreamer-plugins-bad-dc452aa799d80d5f28720e051ac4160a9cf58140.tar.gz
dtls: don't leak the system clock
Obtain and release it as needed.
Diffstat (limited to 'ext')
-rw-r--r--ext/dtls/gstdtlsconnection.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/dtls/gstdtlsconnection.c b/ext/dtls/gstdtlsconnection.c
index 728f5a760..77ed95e5c 100644
--- a/ext/dtls/gstdtlsconnection.c
+++ b/ext/dtls/gstdtlsconnection.c
@@ -76,7 +76,6 @@ static GParamSpec *properties[NUM_PROPERTIES];
static int connection_ex_index;
-static GstClock *system_clock;
static void handle_timeout (gpointer data, gpointer user_data);
struct _GstDtlsConnectionPrivate
@@ -159,8 +158,6 @@ gst_dtls_connection_class_init (GstDtlsConnectionClass * klass)
_gst_dtls_init_openssl ();
gobject_class->finalize = gst_dtls_connection_finalize;
-
- system_clock = gst_system_clock_obtain ();
}
static void
@@ -388,6 +385,7 @@ gst_dtls_connection_check_timeout_locked (GstDtlsConnection * self)
GST_DEBUG_OBJECT (self, "waiting for %" G_GINT64_FORMAT " usec", wait_time);
if (wait_time) {
+ GstClock *system_clock = gst_system_clock_obtain ();
GstClockID clock_id;
#ifndef G_DISABLE_ASSERT
GstClockReturn clock_return;
@@ -405,6 +403,7 @@ gst_dtls_connection_check_timeout_locked (GstDtlsConnection * self)
g_object_ref (self), (GDestroyNotify) g_object_unref);
g_assert (clock_return == GST_CLOCK_OK);
gst_clock_id_unref (clock_id);
+ gst_object_unref (system_clock);
} else {
if (self->priv->is_alive && !self->priv->timeout_pending) {
self->priv->timeout_pending = TRUE;