From 953f54c5ce5882a040c71d540d7abb3771e2d006 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Wed, 12 May 2004 23:43:03 +0000 Subject: [PATCH] gst/gstpipeline.c: call gst_scheduler_reset on dispose (fixes #141416) Original commit message from CVS: * gst/gstpipeline.c: (gst_pipeline_dispose), (gst_pipeline_change_state): call gst_scheduler_reset on dispose (fixes #141416) --- ChangeLog | 6 ++++++ gst/gstpipeline.c | 15 +++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 40a84d33ef..499d71a6cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2004-05-13 Benjamin Otte + + * gst/gstpipeline.c: (gst_pipeline_dispose), + (gst_pipeline_change_state): + call gst_scheduler_reset on dispose (fixes #141416) + 2004-05-11 Benjamin Otte * gst/elements/gstfilesrc.c: (gst_filesrc_get_mmap): diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c index 38f8f66e3b..acfb8f3991 100644 --- a/gst/gstpipeline.c +++ b/gst/gstpipeline.c @@ -132,10 +132,13 @@ static void gst_pipeline_dispose (GObject * object) { GstPipeline *pipeline = GST_PIPELINE (object); + GstScheduler *sched; + g_assert (GST_IS_SCHEDULER (GST_ELEMENT_SCHED (pipeline))); + sched = GST_ELEMENT_SCHED (pipeline); + + gst_scheduler_reset (sched); G_OBJECT_CLASS (parent_class)->dispose (object); - - gst_object_replace ((GstObject **) & GST_ELEMENT_SCHED (pipeline), NULL); } /** @@ -163,15 +166,7 @@ gst_pipeline_change_state (GstElement * element) case GST_STATE_PAUSED_TO_PLAYING: case GST_STATE_PLAYING_TO_PAUSED: case GST_STATE_PAUSED_TO_READY: - break; case GST_STATE_READY_TO_NULL: - /* FIXME: calling gst_scheduler_reset() here is bad, since we - * might not be in cothread 0 */ -#if 0 - if (GST_ELEMENT_SCHED (element)) { - gst_scheduler_reset (GST_ELEMENT_SCHED (element)); - } -#endif break; }