gst/base/gstbasesrc.c: add finalize method and clean up properly
authorThomas Vander Stichele <thomas@apestaart.org>
Sat, 9 Jul 2005 23:33:24 +0000 (23:33 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Sat, 9 Jul 2005 23:33:24 +0000 (23:33 +0000)
Original commit message from CVS:

* gst/base/gstbasesrc.c: (gst_base_src_class_init),
(gst_base_src_finalize):
add finalize method and clean up properly
* gst/gstpipeline.c: (gst_pipeline_dispose):
add debug

ChangeLog
gst/base/gstbasesrc.c
gst/gstpipeline.c
libs/gst/base/gstbasesrc.c

index 8e9b7c2..b769a70 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-07-10  Thomas Vander Stichele  <thomas at apestaart dot org>
+
+       * gst/base/gstbasesrc.c: (gst_base_src_class_init),
+       (gst_base_src_finalize):
+         add finalize method and clean up properly
+       * gst/gstpipeline.c: (gst_pipeline_dispose):
+         add debug
+
 2005-07-09  Thomas Vander Stichele  <thomas at apestaart dot org>
 
        * check/gst/gstbin.c: (pop_messages), (GST_START_TEST),
index 4d8358f..0a37e08 100644 (file)
@@ -57,6 +57,8 @@ static GstElementClass *parent_class = NULL;
 static void gst_base_src_base_init (gpointer g_class);
 static void gst_base_src_class_init (GstBaseSrcClass * klass);
 static void gst_base_src_init (GstBaseSrc * src, gpointer g_class);
+static void gst_base_src_finalize (GObject * object);
+
 
 GType
 gst_base_src_get_type (void)
@@ -129,6 +131,7 @@ gst_base_src_class_init (GstBaseSrcClass * klass)
 
   parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
 
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_base_src_finalize);
   gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_base_src_set_property);
   gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_base_src_get_property);
 
@@ -189,6 +192,19 @@ gst_base_src_init (GstBaseSrc * basesrc, gpointer g_class)
   GST_FLAG_UNSET (basesrc, GST_BASE_SRC_STARTED);
 }
 
+static void
+gst_base_src_finalize (GObject * object)
+{
+  GstBaseSrc *basesrc;
+
+  basesrc = GST_BASE_SRC (object);
+
+  g_mutex_free (basesrc->live_lock);
+  g_cond_free (basesrc->live_cond);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
 void
 gst_base_src_set_live (GstBaseSrc * src, gboolean live)
 {
index 9aaacaf..6c0ad24 100644 (file)
@@ -167,6 +167,8 @@ gst_pipeline_dispose (GObject * object)
 {
   GstPipeline *pipeline = GST_PIPELINE (object);
 
+  GST_CAT_DEBUG_OBJECT (GST_CAT_REFCOUNTING, pipeline, "dispose");
+
   gst_scheduler_reset (GST_ELEMENT_SCHEDULER (object));
   gst_element_set_scheduler (GST_ELEMENT (pipeline), NULL);
   gst_object_replace ((GstObject **) & pipeline->fixed_clock, NULL);
index 4d8358f..0a37e08 100644 (file)
@@ -57,6 +57,8 @@ static GstElementClass *parent_class = NULL;
 static void gst_base_src_base_init (gpointer g_class);
 static void gst_base_src_class_init (GstBaseSrcClass * klass);
 static void gst_base_src_init (GstBaseSrc * src, gpointer g_class);
+static void gst_base_src_finalize (GObject * object);
+
 
 GType
 gst_base_src_get_type (void)
@@ -129,6 +131,7 @@ gst_base_src_class_init (GstBaseSrcClass * klass)
 
   parent_class = g_type_class_ref (GST_TYPE_ELEMENT);
 
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_base_src_finalize);
   gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_base_src_set_property);
   gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_base_src_get_property);
 
@@ -189,6 +192,19 @@ gst_base_src_init (GstBaseSrc * basesrc, gpointer g_class)
   GST_FLAG_UNSET (basesrc, GST_BASE_SRC_STARTED);
 }
 
+static void
+gst_base_src_finalize (GObject * object)
+{
+  GstBaseSrc *basesrc;
+
+  basesrc = GST_BASE_SRC (object);
+
+  g_mutex_free (basesrc->live_lock);
+  g_cond_free (basesrc->live_cond);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
 void
 gst_base_src_set_live (GstBaseSrc * src, gboolean live)
 {