<chapter id="cha-scheduler"> <title>Understanding schedulers</title> <para> The scheduler is responsible for managing the plugins at runtime. Its main responsibilities are: <itemizedlist> <listitem> <para> Preparing the plugins so they can be scheduled. </para> </listitem> <listitem> <para> Monitoring state changes and enabling/disabling the element in the chain. </para> </listitem> <listitem> <para> Choosing an element as the entry point for the pipeline. </para> </listitem> <listitem> <para> Selecting and distributing the global clock. </para> </listitem> </itemizedlist> </para> <para> The scheduler is a plugable component; this means that alternative schedulers can be written and plugged into GStreamer. The default scheduler uses cothreads to schedule the plugins in a pipeline. Cothreads are fast and lightweight user-space threads. </para> <para> There is usually no need to interact with the scheduler directly, however in some cases it is feasible to set a specific clock or force a specific plugin as the entry point in the pipeline. </para> </chapter>