static void
gst_pipeline_init (GstPipeline *pipeline)
{
+ GstScheduler *scheduler;
+
/* we're a manager by default */
GST_FLAG_SET (pipeline, GST_BIN_FLAG_MANAGER);
- GST_ELEMENT_SCHED (pipeline) = gst_schedulerfactory_make ("basic", GST_ELEMENT (pipeline));
+ scheduler = gst_schedulerfactory_make ("basic", GST_ELEMENT (pipeline));
+
+ GST_ELEMENT_SCHED (pipeline) = scheduler;
+
+ gst_object_ref (GST_OBJECT (scheduler));
+ gst_object_sink (GST_OBJECT (scheduler));
- gst_object_ref (GST_OBJECT (GST_ELEMENT_SCHED (pipeline)));
- gst_object_sink (GST_OBJECT (GST_ELEMENT_SCHED (pipeline)));
+ gst_scheduler_setup (scheduler);
- GST_DEBUG (GST_CAT_PIPELINE, "pipeline's scheduler is %p\n", GST_ELEMENT_SCHED (pipeline));
+ GST_DEBUG (GST_CAT_PIPELINE, "pipeline's scheduler is %p\n", scheduler);
}
static void
G_OBJECT_CLASS (parent_class)->dispose (object);
+ gst_scheduler_reset (GST_ELEMENT_SCHED (pipeline));
gst_object_unref (GST_OBJECT (GST_ELEMENT_SCHED (pipeline)));
}