summaryrefslogtreecommitdiffstats
path: root/gst/udp
diff options
context:
space:
mode:
Diffstat (limited to 'gst/udp')
-rw-r--r--gst/udp/gstmultiudpsink.c5
-rw-r--r--gst/udp/gstudpsink.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index 670162c0..bcafd95f 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -92,6 +92,8 @@ static void gst_multiudpsink_set_property (GObject * object, guint prop_id,
static void gst_multiudpsink_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec);
+static void free_client (GstUDPClient * client);
+
static GstElementClass *parent_class = NULL;
static guint gst_multiudpsink_signals[LAST_SIGNAL] = { 0 };
@@ -269,6 +271,9 @@ gst_multiudpsink_finalize (GObject * object)
sink = GST_MULTIUDPSINK (object);
+ g_list_foreach (sink->clients, (GFunc) free_client, NULL);
+ g_list_free (sink->clients);
+
g_mutex_free (sink->client_lock);
WSA_CLEANUP (object);
diff --git a/gst/udp/gstudpsink.c b/gst/udp/gstudpsink.c
index f647e60c..583827dd 100644
--- a/gst/udp/gstudpsink.c
+++ b/gst/udp/gstudpsink.c
@@ -51,6 +51,7 @@ enum
static void gst_udpsink_base_init (gpointer g_class);
static void gst_udpsink_class_init (GstUDPSink * klass);
static void gst_udpsink_init (GstUDPSink * udpsink);
+static void gst_udpsink_finalize (GstUDPSink * udpsink);
static void gst_udpsink_uri_handler_init (gpointer g_iface,
gpointer iface_data);
@@ -123,6 +124,8 @@ gst_udpsink_class_init (GstUDPSink * klass)
gobject_class->set_property = gst_udpsink_set_property;
gobject_class->get_property = gst_udpsink_get_property;
+ gobject_class->finalize = (GObjectFinalizeFunc) gst_udpsink_finalize;
+
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_HOST,
g_param_spec_string ("host", "host",
"The host/IP/Multicast group to send the packets to",
@@ -142,6 +145,14 @@ gst_udpsink_init (GstUDPSink * udpsink)
udpsink->port);
}
+static void
+gst_udpsink_finalize (GstUDPSink * udpsink)
+{
+ g_free (udpsink->host);
+
+ G_OBJECT_CLASS (parent_class)->finalize ((GObject *) udpsink);
+}
+
static gboolean
gst_udpsink_set_uri (GstUDPSink * sink, const gchar * uri)
{