diff options
Diffstat (limited to 'gst/udp')
-rw-r--r-- | gst/udp/gstmultiudpsink.c | 5 | ||||
-rw-r--r-- | gst/udp/gstudpsink.c | 11 |
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) { |