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

Revision 21448, 9.0 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.
Line 
1<?xml version='1.0'?>
2<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3                  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
4<!ENTITY % image-entities SYSTEM "image.entities">
5%image-entities;
6<!ENTITY % version-entities SYSTEM "version.entities">
7%version-entities;
8<!ENTITY % url-entities SYSTEM "url.entities">
9%url-entities;
10
11<!ENTITY EXAFOOT "
12<footnote>
13  <para>
14    The code for this example is automatically extracted from
15    the documentation and built under <filename>examples/manual</filename>
16    in the GStreamer tarball.
17  </para>
18</footnote>
19">
20
21<!-- Part 1: Overview -->
22<!ENTITY INTRO SYSTEM "intro-preface.xml">
23<!ENTITY MOTIVATION SYSTEM "intro-motivation.xml">
24<!ENTITY CONCEPTS SYSTEM "intro-basics.xml">
25
26<!-- Part 2: Basic Concepts -->
27<!ENTITY INIT SYSTEM "basics-init.xml">
28<!ENTITY ELEMENTS SYSTEM "basics-elements.xml">
29<!ENTITY BINS SYSTEM "basics-bins.xml">
30<!ENTITY PADS SYSTEM "basics-pads.xml">
31<!ENTITY DATA SYSTEM "basics-data.xml">
32<!ENTITY HELLOWORLD SYSTEM "basics-helloworld.xml">
33
34<!-- Part 3: Advanced Concepts -->
35<!ENTITY QUERYEVENTS SYSTEM "advanced-position.xml">
36<!ENTITY METADATA SYSTEM "advanced-metadata.xml">
37<!ENTITY INTERFACES SYSTEM "advanced-interfaces.xml">
38<!ENTITY CLOCKS SYSTEM "advanced-clocks.xml">
39<!ENTITY DPARAMS SYSTEM "advanced-dparams.xml">
40<!ENTITY THREADS SYSTEM "advanced-threads.xml">
41<!ENTITY SCHEDULERS SYSTEM "advanced-schedulers.xml">
42<!ENTITY AUTOPLUGGING SYSTEM "advanced-autoplugging.xml">
43<!ENTITY DATAACCESS SYSTEM "advanced-dataaccess.xml">
44
45<!-- Part 4: Higher-level interfaces -->
46<!ENTITY XML SYSTEM "highlevel-xml.xml">
47<!ENTITY COMPONENTS SYSTEM "highlevel-components.xml">
48
49<!-- Appendices -->
50<!ENTITY CHECKLIST SYSTEM "appendix-checklist.xml">
51<!ENTITY INTEGRATION SYSTEM "appendix-integration.xml">
52<!ENTITY LICENSING SYSTEM "appendix-licensing.xml">
53<!ENTITY WIN32 SYSTEM "appendix-win32.xml">
54<!ENTITY QUOTES SYSTEM "appendix-quotes.xml">
55
56<!ENTITY GStreamer    "<application>GStreamer</application>">
57]>
58
59<book id="index">
60  <bookinfo>
61   
62    <authorgroup>
63      <author>
64        <firstname>Wim</firstname>
65        <surname>Taymans</surname>
66        <authorblurb>
67          <para>
68            <email>wim.taymans@chello.be</email>
69          </para>
70        </authorblurb>
71      </author>
72      <author>
73        <firstname>Steve</firstname>
74        <surname>Baker</surname>
75        <authorblurb>
76          <para>
77            <email>stevebaker_org@yahoo.co.uk</email>
78          </para>
79        </authorblurb>
80      </author>
81      <author>
82        <firstname>Andy</firstname>
83        <surname>Wingo</surname>
84        <authorblurb>
85          <para>
86            <email>wingo@pobox.com</email>
87          </para>
88        </authorblurb>
89      </author>
90      <author>
91        <firstname>Ronald</firstname>
92        <othername>S.</othername>
93        <surname>Bultje</surname>
94        <authorblurb>
95          <para>
96            <email>rbultje@ronald.bitfreak.net</email>
97          </para>
98        </authorblurb>
99      </author>
100    </authorgroup>
101
102    <legalnotice id="misc-legalnotice">
103      <para>
104        This material may be distributed only subject to the terms and
105        conditions set forth in the Open Publication License, v1.0 or later (the
106        latest version is presently available at <ulink url="
107        http://www.opencontent.org/opl.shtml"
108        type="http">http://www.opencontent.org/opl.shtml</ulink>).
109      </para>
110    </legalnotice>
111
112    <title>&GStreamer; Application Development Manual (&GST_VERSION;)</title>
113
114  </bookinfo>
115     
116<!-- ############# Introduction & Overview - part ############### -->
117
118  <part id="part-overview">
119    <title>Overview</title>
120    <partintro>
121      <para>
122        &GStreamer; is an exremely powerful and versatile framework for
123        creating streaming media applications. Many of the virtues of the
124        &GStreamer; framework come from its modularity: &GStreamer; can
125        seamlessly incorporate new plugin modules. But because modularity
126        and power often come at a cost of greater complexity (consider,
127        for example, <ulink
128        type="http" url="http://www.omg.org/">CORBA</ulink>), writing new
129        applications is not always easy.
130      </para>
131      <para>
132        This guide is intended to help you understand the &GStreamer;
133        framework (version &GST_VERSION;) so you can develop applications
134        based on it. The first chapters will focus on development of a
135        simple audio player, with much effort going into helping you
136        understand &GStreamer; concepts. Later chapters will go into
137        more advanced topics related to media playback, but also at
138        other forms of media processing (capture, editing, etc.).
139      </para>
140    </partintro>
141
142    &INTRO;
143    &MOTIVATION;
144    &CONCEPTS;
145
146  </part>
147
148<!-- ############ Basic concepts - part ############# -->
149
150  <part id="part-basics">
151    <title>Basic Concepts</title>
152    <partintro>
153      <para>
154        In these chapters, we will discuss the basic concepts of &GStreamer;
155        and the most-used objects, such as elements, pads and buffers. We
156        will use a visual representation of these objects so that we can
157        visualize the more complex pipelines you will learn to build later
158        on. You will get a first glance at the &GStreamer; API, which should
159        be enough for building elementary applications. Later on in this
160        part, you will also learn to build a basic command-line application.
161      </para>
162      <para>
163        Note that this part will give a look into the low-level API and
164        concepts of &GStreamer;. Once you're going to build applications,
165        you might want to use higher-level APIs. Those will be discussed
166        later on in this manual.
167      </para>
168    </partintro>
169
170    &INIT;
171    &ELEMENTS;
172    &BINS;
173    &PADS;
174    &DATA;
175    &HELLOWORLD;
176
177  </part>
178
179<!-- ############ Advanced GStreamer - part ############# -->
180
181  <part id="part-advanced">
182    <title>Advanced &GStreamer; concepts</title>
183    <partintro>
184      <para>
185        In this part we will cover the more advanced features of &GStreamer;.
186        With the basics you learned in the previous part you should be
187        able to create a <emphasis>simple</emphasis> application. However,
188        &GStreamer; provides much more candy than just the basics of playing
189        back audio files. In this chapter, you will learn more of the
190        low-level features and internals of &GStreamer;, such as threads,
191        scheduling, synchronization, metadata, interfaces and dynamic
192        parameters.
193      </para>     
194    </partintro>
195
196    &QUERYEVENTS;
197    &METADATA;
198    &INTERFACES;
199    &CLOCKS;
200    &DPARAMS;
201    &THREADS;
202    &SCHEDULERS;
203    &AUTOPLUGGING;
204    &DATAACCESS;
205
206  </part>
207
208<!-- ############ Higher-level APIs in GStreamer - part ############# -->
209
210  <part id="part-highlevel">
211    <title>Higher-level interfaces for &GStreamer; applications</title>
212    <partintro>
213      <para>
214        In the previous two parts, you have learned many of the internals
215        and their corresponding low-level interfaces into &GStreamer;
216        application programming. Many people will, however, not need so
217        much control (and as much code), but will prefer to use a standard
218        playback interface that does most of the difficult internals for
219        them. In this chapter, we will introduce you into the concept of
220        autopluggers, playback managing elements, XML-based pipelines and
221        other such things. Those higher-level interfaces are intended to
222        simplify &GStreamer;-based application programming. They do, however,
223        also reduce the flexibility. It is up to the application developer
224        to choose which interface he will want to use.
225      </para>
226    </partintro>
227
228    &COMPONENTS;
229    &XML;
230
231  </part>
232
233<!-- ############ Appendices - part ############# -->
234
235  <part id="part-appendices">
236    <title>Appendices</title>
237    <partintro>
238      <para>
239        By now, you've learned all about the internals of &GStreamer; and
240        application programming using the &GStreamer; framework. This part
241        will go into some random bits that are useful to know if you're
242        going to use &GStreamer; for serious application programming. It
243        will touch upon things related to integration with popular desktop
244        environments that we run on (GNOME, KDE, OS X, Windows), it will
245        shortly explain how applications included with &GStreamer; can help
246        making your life easier, and some information on debugging.
247      </para>
248    </partintro>
249
250<!--
251Idea:
252* Debugging and error handling
253   - 'error' signal in pipelines
254   - checking return values and how to handle them
255   - using signals for pipeline states
256   - gst-debug
257   - programs
258* Desktop integration
259   - Linux/UNIX
260      . {x,xv}imagesink
261      . {oss,alsa}sink
262      . {v4l,v4l2,oss,alsa}src
263   - GNOME
264      . GConf ({video,audio}{src,sink})
265      . gnomevfssrc, gnomevfssink
266      . popt
267      . app examples (RB, Totem, gnome-media, ...)
268   - KDE
269      . kiosrc
270      . app examples (JuK, AmaroK)
271      . ask Scott/Mark
272   - Mac OS X
273      . native video/audio sink
274   - Windows
275      . build etc.
276* Quotes from devs
277   - table please...
278-->
279
280    &CHECKLIST;
281    &INTEGRATION;
282    &LICENSING;
283    &WIN32;
284    &QUOTES;
285
286  </part>
287</book>
Note: See TracBrowser for help on using the repository browser.