<!-- ############ 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> |