blob: b86e72f20ba41d3645e6daa43d550c4cf5a478c0 [file] [log] [blame]
Wim Taymans213703e2002-03-31 15:28:51 +00001<chapter id="cha-scheduler">
2 <title>Understanding schedulers</title>
3 <para>
Thomas Vander Sticheleef634112002-09-14 14:13:34 +00004 The scheduler is responsible for managing the plugins at runtime. Its
5 main responsibilities are:
Wim Taymans4992f1c2002-05-08 20:06:20 +00006 <itemizedlist>
7 <listitem>
8 <para>
9 Preparing the plugins so they can be scheduled.
10 </para>
11 </listitem>
12 <listitem>
13 <para>
14 Monitoring state changes and enabling/disabling the element in the
15 chain.
16 </para>
17 </listitem>
18 <listitem>
19 <para>
20 Choosing an element as the entry point for the pipeline.
21 </para>
22 </listitem>
23 <listitem>
24 <para>
25 Selecting and distributing the global clock.
26 </para>
27 </listitem>
28 </itemizedlist>
29 </para>
30 <para>
Thomas Vander Stichele3b765972003-10-09 12:42:49 +000031 The scheduler is a pluggable component; this means that alternative
Thomas Vander Stichele9f8ab3e2002-09-08 21:17:16 +000032 schedulers can be written and plugged into GStreamer. The default scheduler
33 uses cothreads to schedule the plugins in a pipeline. Cothreads are fast
34 and lightweight user-space threads.
Wim Taymans4992f1c2002-05-08 20:06:20 +000035 </para>
36 <para>
Thomas Vander Stichele9f8ab3e2002-09-08 21:17:16 +000037 There is usually no need to interact with the scheduler directly, however
Thomas Vander Sticheleef634112002-09-14 14:13:34 +000038 in some cases it is feasible to set a specific clock or force a specific
Thomas Vander Stichele9f8ab3e2002-09-08 21:17:16 +000039 plugin as the entry point in the pipeline.
Wim Taymans213703e2002-03-31 15:28:51 +000040 </para>
41
42</chapter>