source: trunk/third/gstreamer/docs/manual/intro-preface.xml @ 21448

Revision 21448, 5.1 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21447, which included commits to RCS files with non-trunk default branches.
RevLine 
[21447]1<chapter id="chapter-intro">
2  <title>Introduction</title>
3  <para>
4    This chapter gives you an overview of the technologies described in this
5    book. 
6  </para>
7
8  <sect1 id="section-intro-what">
9    <title>What is &GStreamer;?</title>
10    <para>
11      &GStreamer; is a framework for creating streaming media applications.
12      The fundamental design comes from the video pipeline at Oregon Graduate
13      Institute, as well as some ideas from DirectShow. 
14    </para>
15 
16    <para>
17      &GStreamer;'s development framework makes it possible to write any
18      type of streaming multimedia application. The &GStreamer; framework
19      is designed to make it easy to write applications that handle audio
20      or video or both. It isn't restricted to audio and video, and can
21      process any kind of data flow.
22      The pipeline design is made to have little overhead above what the
23      applied filters induce. This makes &GStreamer; a good framework for
24      designing even high-end audio applications which put high demands on
25      latency.
26    </para>
27
28    <para>
29      One of the the most obvious uses of &GStreamer; is using it to build
30      a media player. &GStreamer; already includes components for building a
31      media player that can support a very wide variety of formats, including
32      MP3, Ogg/Vorbis, MPEG-1/2, AVI, Quicktime, mod, and more. &GStreamer;,
33      however, is much more than just another media player. Its main advantages
34      are that the pluggable components can be mixed and matched into arbitrary
35      pipelines so that it's possible to write a full-fledged video or audio
36      editing application.
37    </para>
38
39    <para>
40      The framework is based on plugins that will provide the various codec
41      and other functionality. The plugins can be linked and arranged in
42      a pipeline. This pipeline defines the flow of the data. Pipelines can
43      also be edited with a GUI editor and saved as XML so that pipeline
44      libraries can be made with a minimum of effort.
45    </para>
46
47    <para>
48      The &GStreamer; core function is to provide a framework for plugins,
49      data flow and media type handling/negotiation. It also provides an
50      API to write applications using the various plugins.
51    </para>
52  </sect1>
53
54  <sect1 id="section-intro-structure">
55    <title>Structure of this Manual</title>
56    <para>
57      This book is about &GStreamer; from a developer's point of view; it
58      describes how to write a &GStreamer; application using the &GStreamer;
59      libraries and tools. For an explanation about writing plugins, we
60      suggest the <ulink type="http"
61      url="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/index.html">Plugin
62      Writers Guide</ulink>.
63    </para>
64
65    <para>
66      <xref linkend="part-overview"/> gives you an overview of &GStreamer;'s
67      motivation design goals.
68    </para>
69
70    <para>
71      <xref linkend="part-basics"/> rapidly covers the basics of &GStreamer;
72      application programming. At the end of that chapter, you should be
73      able to build your own audio player using &GStreamer;
74    </para>
75
76    <para>
77      In <xref linkend="part-advanced"/>, we will move on to complicated
78      subjects which make &GStreamer; stand out of its competitors. We
79      will discuss application-pipeline interaction using dynamic parameters
80      and interfaces, we will discuss threading and threaded pipelines,
81      scheduling and clocks (and synchronization). Most of those topics are
82      not just there to introduce you to their API, but primarily to give
83      a deeper insight in solving application programming problems with
84      &GStreamer; and understanding their concepts.
85    </para>
86
87    <para>
88      Next, in <xref linkend="part-highlevel"/>, we will go into higher-level
89      programming APIs for &GStreamer;. You don't exactly need to know all
90      the details from the previous parts to understand this, but you will
91      need to understand basic &GStreamer; concepts nevertheless. We will,
92      amongst others, discuss XML, playbin and autopluggers.
93    </para>
94
95    <para>
96      In <xref linkend="part-appendices"/>, you will find some random
97      information on integrating with GNOME, KDE, OS X or Windows, some
98      debugging help and general tips to improve and simplify &GStreamer;
99      programming.
100    </para>
101
102    <para>
103      In order to understand this manual, you will need to have a basic
104      understanding of the C language. Since &GStreamer; uses <ulink
105      url="http://developer.gnome.org/arch/gtk/glib.html" type="http">GLib
106      2.0</ulink>, the reader is assumed to understand the basics of the
107      <ulink url="http://developer.gnome.org/doc/API/2.0/gobject/index.html"
108      type="http">GObject object model</ulink>. It is recommended to have
109      skimmed through the introduction of the <ulink type="http"
110      url="http://www.le-hacker.org/papers/gobject/index.html">GObject
111      tutorial</ulink> before reading this. You may also want to have a look
112      at Eric Harlow's book <emphasis>Developing Linux Applications with
113      GTK+ and GDK</emphasis>.
114      </para>
115
116  </sect1>
117</chapter>
Note: See TracBrowser for help on using the repository browser.