| <!-- ############ sect1 ############# --> | |
| <sect1 id="section-intro-who" xreflabel="Who Should Read This Manual?"> | |
| <title>Who should read this manual?</title> | |
| <para> | |
| This book is about &GStreamer; from an application developer's point of view; it | |
| describes how to write a &GStreamer; application using the &GStreamer; | |
| libraries and tools. For an explanation about writing plugins, we | |
| suggest the <ulink type="http" | |
| url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html">Plugin | |
| Writers Guide</ulink>. | |
| </para> | |
| <para> | |
| Also check out the other documentation available on the <ulink type="http" | |
| url="http://gstreamer.freedesktop.org/documentation/">&GStreamer; web site</ulink>. | |
| </para> | |
| </sect1> | |
| <!-- ############ sect1 ############# --> | |
| <sect1 id="section-intro-reading" xreflabel="Preliminary Reading"> | |
| <title>Preliminary reading</title> | |
| <para><!-- synchronize with PWG --> | |
| In order to understand this manual, you need to have a basic | |
| understanding of the <emphasis>C language</emphasis>. | |
| </para> | |
| <para> | |
| Since &GStreamer; adheres to the GObject programming model, this guide | |
| also assumes that you understand the basics of <ulink type="http" | |
| url="http://library.gnome.org/devel/gobject/stable/">GObject</ulink> and <ulink type="http" | |
| url="http://library.gnome.org/devel/glib/stable/">glib</ulink> programming. | |
| Especially, | |
| <itemizedlist> | |
| <listitem><para>GObject instantiation</para></listitem> | |
| <listitem><para>GObject properties (set/get)</para></listitem> | |
| <listitem><para>GObject casting</para></listitem> | |
| <listitem><para>GObject referecing/dereferencing</para></listitem> | |
| <listitem><para>glib memory management</para></listitem> | |
| <listitem><para>glib signals and callbacks</para></listitem> | |
| <listitem><para>glib main loop</para></listitem> | |
| </itemizedlist> | |
| </para> | |
| </sect1> | |
| <!-- ############ sect1 ############# --> | |
| <sect1 id="section-intro-structure"> | |
| <title>Structure of this manual</title> | |
| <para> | |
| To help you navigate through this guide, it is divided into several large | |
| parts. Each part addresses a particular broad topic concerning &GStreamer; | |
| appliction development. The parts of this guide are laid out in the following | |
| order: | |
| </para> | |
| <para> | |
| <xref linkend="part-introduction"/> gives you an overview of &GStreamer;, | |
| it's design principles and foundations. | |
| </para> | |
| <para> | |
| <xref linkend="part-building"/> covers the basics of &GStreamer; | |
| application programming. At the end of this part, you should be | |
| able to build your own audio player using &GStreamer; | |
| </para> | |
| <para> | |
| In <xref linkend="part-advanced"/>, we will move on to advanced | |
| subjects which make &GStreamer; stand out of its competitors. We | |
| will discuss application-pipeline interaction using dynamic parameters | |
| and interfaces, we will discuss threading and threaded pipelines, | |
| scheduling and clocks (and synchronization). Most of those topics are | |
| not just there to introduce you to their API, but primarily to give | |
| a deeper insight in solving application programming problems with | |
| &GStreamer; and understanding their concepts. | |
| </para> | |
| <para> | |
| Next, in <xref linkend="part-highlevel"/>, we will go into higher-level | |
| programming APIs for &GStreamer;. You don't exactly need to know all | |
| the details from the previous parts to understand this, but you will | |
| need to understand basic &GStreamer; concepts nevertheless. We will, | |
| amongst others, discuss XML, playbin and autopluggers. | |
| </para> | |
| <para> | |
| Finally in <xref linkend="part-appendices"/>, you will find some random | |
| information on integrating with GNOME, KDE, OS X or Windows, some | |
| debugging help and general tips to improve and simplify &GStreamer; | |
| programming. | |
| </para> | |
| </sect1> |