From: Thomas Vander Stichele Date: Sat, 9 Jul 2005 23:33:24 +0000 (+0000) Subject: gst/base/gstbasesrc.c: add finalize method and clean up properly X-Git-Tag: RELEASE-0_9_2~263 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=51bfa5c30bb3a9df2424844fc178dabe445ace9d;p=platform%2Fupstream%2Fgstreamer.git gst/base/gstbasesrc.c: add finalize method and clean up properly 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 --- diff --git a/ChangeLog b/ChangeLog index 8e9b7c2..b769a70 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-07-10 Thomas Vander Stichele + + * 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 * check/gst/gstbin.c: (pop_messages), (GST_START_TEST), diff --git a/gst/base/gstbasesrc.c b/gst/base/gstbasesrc.c index 4d8358f..0a37e08 100644 --- a/gst/base/gstbasesrc.c +++ b/gst/base/gstbasesrc.c @@ -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) { diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c index 9aaacaf..6c0ad24 100644 --- a/gst/gstpipeline.c +++ b/gst/gstpipeline.c @@ -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); diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c index 4d8358f..0a37e08 100644 --- a/libs/gst/base/gstbasesrc.c +++ b/libs/gst/base/gstbasesrc.c @@ -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) {