Commit e978887f authored by Thomas Vander Stichele's avatar Thomas Vander Stichele
Browse files

fix manual id's

Original commit message from CVS:
fix manual id's
parent 0d7d7838
2004-01-28 Thomas Vander Stichele <thomas at apestaart dot org>
* docs/manual/autoplugging.xml:
* docs/manual/bins-api.xml:
* docs/manual/bins.xml:
* docs/manual/buffers-api.xml:
* docs/manual/buffers.xml:
* docs/manual/clocks.xml:
* docs/manual/components.xml:
* docs/manual/cothreads.xml:
* docs/manual/debugging.xml:
* docs/manual/dparams-app.xml:
* docs/manual/dynamic.xml:
* docs/manual/elements-api.xml:
* docs/manual/elements.xml:
* docs/manual/factories.xml:
* docs/manual/gnome.xml:
* docs/manual/goals.xml:
* docs/manual/helloworld.xml:
* docs/manual/helloworld2.xml:
* docs/manual/init-api.xml:
* docs/manual/intro.xml:
* docs/manual/links-api.xml:
* docs/manual/links.xml:
* docs/manual/manual.xml:
* docs/manual/motivation.xml:
* docs/manual/pads-api.xml:
* docs/manual/pads.xml:
* docs/manual/plugins-api.xml:
* docs/manual/plugins.xml:
* docs/manual/programs.xml:
* docs/manual/queues.xml:
* docs/manual/quotes.xml:
* docs/manual/schedulers.xml:
* docs/manual/states-api.xml:
* docs/manual/states.xml:
* docs/manual/threads.xml:
* docs/manual/typedetection.xml:
* docs/manual/xml.xml:
use chapter, part, section or misc as id starts for all bits
2004-01-28 Thomas Vander Stichele <thomas at apestaart dot org>
* docs/gst/gstreamer-sections.txt:
......
<chapter id="cha-factories">
<chapter id="chapter-factories">
<title>More on factories</title>
<para>
The small application we created in the previous chapter used the
......@@ -11,7 +11,7 @@
We will first explain the concepts involved before we move on
to the reworked helloworld example using autoplugging.
</para>
<sect1>
<sect1 id="section-factories-helloworld-problems">
<title>The problems with the helloworld example</title>
<para>
If we take a look at how the elements were created in the previous
......@@ -40,7 +40,7 @@
</para>
</sect1>
<sect1>
<sect1 id="section-factories-mime">
<title>More on MIME Types</title>
<para>
GStreamer uses MIME types to identify the different types of data
......@@ -82,10 +82,10 @@
</para>
<para>
<xref linkend="sec-mime-img"/> shows the MIME types associated with
<xref linkend="section-mime-img"/> shows the MIME types associated with
each pad from the "hello world" example.
</para>
<figure float="1" id="sec-mime-img">
<figure float="1" id="section-mime-img">
<title>The Hello world pipeline with MIME types</title>
<mediaobject>
<imageobject>
......@@ -115,7 +115,7 @@
</sect1>
<sect1>
<sect1 id="section-factories-gstreamer-types">
<title>GStreamer types</title>
<para>
GStreamer assigns a unique number to all registered MIME types.
......@@ -204,12 +204,12 @@ struct _GstType {
This function will return 0 if the extension was not known.
</para>
<para>
For more information, see <xref linkend="cha-autoplug"/>.
For more information, see <xref linkend="chapter-autoplug"/>.
</para>
</sect2>
</sect1>
<sect1>
<sect1 id="section-factories-create">
<title>Creating elements with the factory</title>
<para>
In the previous section we described how you could obtain
......@@ -232,7 +232,7 @@ struct _GstType {
</para>
</sect1>
<sect1>
<sect1 id="section-factories-basic-types">
<title>GStreamer basic types</title>
<para>
GStreamer only has two builtin types:
......
<chapter id="cha-clocks">
<title>Clocks in GStreamer</title>
<para>
</para>
</chapter>
<chapter id="cha-dparams">
<chapter id="chapter-dparams">
<title>Dynamic Parameters</title>
<sect1>
<sect1 id="section-dparams-getting-started">
<title>Getting Started</title>
<para>
The Dynamic Parameters subsystem is contained within the
......@@ -31,7 +31,7 @@
</programlisting>
</sect1>
<sect1>
<sect1 id="section-dparams-creating">
<title>Creating and Attaching Dynamic Parameters</title>
<para>
Once you have created your elements you can create and attach dparams to them.
......@@ -81,7 +81,7 @@
</programlisting>
</sect1>
<sect1>
<sect1 id="section-dparams-changing">
<title>Changing Dynamic Parameter Values</title>
<para>
All interaction with dparams to actually set the dparam value is done through simple GObject properties.
......@@ -116,7 +116,7 @@
</sect1>
<sect1>
<sect1 id="section-dparams-types">
<title>Different Types of Dynamic Parameter</title>
<para>
There are currently only two implementations of dparams so far. They are both for real-time use so
......
<chapter id="cha-scheduler">
<chapter id="chapter-scheduler">
<title>Understanding schedulers</title>
<para>
The scheduler is responsible for managing the plugins at runtime. Its
......
<chapter id="cha-threads">
<chapter id="chapter-threads">
<title>Threads</title>
<para>
GStreamer has support for multithreading through the use of
......@@ -37,7 +37,7 @@
itself. You never need to explicitly iterate a thread.
</para>
<sect1>
<sect1 id="section-threads-constraints">
<title>Constraints placed on the pipeline by the GstThread</title>
<para>
Within the pipeline, everything is the same as in any other bin. The
......@@ -46,13 +46,13 @@
fundamentally buffer-oriented rather than byte-oriented, the natural
solution to this problem is an element that can "buffer" the buffers
between the threads, in a thread-safe fashion. This element is the
queue, described more fully in <xref linkend="cha-queues"/>. It doesn't
queue, described more fully in <xref linkend="chapter-queues"/>. It doesn't
matter if the queue is placed in the containing bin or in the thread
itself, but it needs to be present on one side or the other to enable
inter-thread communication.
</para>
</sect1>
<sect1>
<sect1 id="section-threads-when">
<title>When would you want to use a thread?</title>
<para>
If you are writing a GUI application, making the top-level bin a thread will make your GUI
......@@ -63,9 +63,9 @@
an audio pipeline.
</para>
<para>
<xref linkend="sec-threads-img"/> shows how a thread can be visualised.
<xref linkend="section-threads-img"/> shows how a thread can be visualised.
</para>
<figure float="1" id="sec-threads-img">
<figure float="1" id="section-threads-img">
<title>A thread</title>
<mediaobject>
<imageobject>
......
<chapter id="cha-debugging">
<chapter id="chapter-debugging">
<title>Debugging</title>
<para>
GStreamer has an extensive set of debugging tools for
plugin developers.
</para>
<sect1>
<sect1 id="section-debugging-command-line">
<title>Command line options</title>
<para>
Applications using the GStreamer libraries accept the following set
......@@ -94,7 +94,7 @@ Mask (to be OR'ed) info/debug FLAGS
0x02000000 / REFCOUNTING
</programlisting>
</sect1>
<sect1>
<sect1 id="section-debugging-adding-handler">
<title>Adding a custom debug handler</title>
<para>
</para>
......
<chapter id="cha-debugging">
<chapter id="chapter-debugging">
<title>Debugging</title>
<para>
GStreamer has an extensive set of debugging tools for
plugin developers.
</para>
<sect1>
<sect1 id="section-debugging-command-line">
<title>Command line options</title>
<para>
Applications using the GStreamer libraries accept the following set
......@@ -94,7 +94,7 @@ Mask (to be OR'ed) info/debug FLAGS
0x02000000 / REFCOUNTING
</programlisting>
</sect1>
<sect1>
<sect1 id="section-debugging-adding-handler">
<title>Adding a custom debug handler</title>
<para>
</para>
......
<chapter id="cha-gnome">
<chapter id="chapter-gnome">
<title>GNOME integration</title>
<para>
GStreamer is fairly easy to integrate with GNOME applications.
......
<chapter id="cha-gnome">
<chapter id="chapter-gnome">
<title>GNOME integration</title>
<para>
GStreamer is fairly easy to integrate with GNOME applications.
......
<chapter id="cha-programs">
<chapter id="chapter-programs">
<title>Programs</title>
<para>
</para>
<sect1>
<sect1 id="section-programs-gst-register">
<title><command>gst-register</command></title>
<para>
<command>gst-register</command> is used to rebuild the database of plugins.
......@@ -12,7 +12,7 @@
</para>
</sect1>
<sect1>
<sect1 id="section-programs-gst-launch">
<title><command>gst-launch</command></title>
<para>
This is a tool that will construct pipelines based on a command-line
......@@ -149,7 +149,7 @@ main (int argc, char *argv[])
</sect2>
</sect1>
<sect1>
<sect1 id="section-programs-gst-inspect">
<title><command>gst-inspect</command></title>
<para>
This is a tool to query a plugin or an element about its properties.
......
<chapter id="cha-quotes">
<chapter id="chapter-quotes">
<title>Quotes from the Developers</title>
<para>
As well as being a cool piece of software,
......
<chapter id="cha-autoplug">
<chapter id="chapter-autoplug">
<title>Autoplugging</title>
<para>
<application>GStreamer</application> provides an API to automatically
......@@ -91,12 +91,12 @@
</programlisting>
</para>
</sect1>
<sect1>
<sect1 id="section-autoplug-cache">
<title>Using the <classname>GstAutoplugCache</classname> element</title>
<para>
The <classname>GstAutoplugCache</classname> element is used to cache the
media stream when performing typedetection. As we have seen in
<xref linkend="cha-typedetection"/>, the typefind function consumes a
<xref linkend="chapter-typedetection"/>, the typefind function consumes a
buffer to determine its media type. After we have set up the pipeline
to play the media stream we should be able to 'replay' the previous buffer(s).
This is what the autoplugcache is used for.
......@@ -147,7 +147,7 @@
autoplugger, the autoplugcache and the typefind element.
</para>
</sect1>
<sect1>
<sect1 id="section-autoplugging-spider">
<title>Another approach to autoplugging</title>
<para>
The autoplug API is interesting, but often impractical. It is static;
......
<chapter id="cha-bins">
<title>Bins</title>
<para>
A bin is a container element. You can add elements to a bin. Since a bin is
an element itself, it can also be added to another bin.
</para>
<para>
Bins allow you to combine a group of linked elements into one logical element. You do
not deal with the individual elements anymore but with just one element, the bin.
We will see that this is extremely powerful when you are going to construct
complex pipelines since it allows you to break up the pipeline in smaller chunks.
</para>
<para>
The bin will also manage the elements contained in it. It will figure out how
the data will flow in the bin and generate an optimal plan for that data flow. Plan
generation is one of the most complicated procedures in GStreamer.
</para>
<figure float="1" id="sec-bin-img">
<title>Visualisation of a bin with some elements in it</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/bin-element.&image;" format="&IMAGE;" />
</imageobject>
</mediaobject>
</figure>
<para>
There are two specialized bins available to the GStreamer programmer:
<itemizedlist>
<listitem>
<para>
a pipeline: a generic container that allows scheduling of the
containing elements. The toplevel bin has to be a pipeline.
Every application thus needs at least one of these.
</para>
</listitem>
<listitem>
<para>
a thread: a bin that will be run in a separate execution thread.
You will have to use this bin if you have to carefully
synchronize audio and video, or for buffering. You will learn
more about threads in <xref linkend="cha-threads"/>.
</para>
</listitem>
</itemizedlist>
</para>
</chapter>
<chapter id="cha-buffers">
<chapter id="chapter-buffers">
<title>Buffers</title>
<para>
Buffers contain the data that will flow through the pipeline you have
......
<chapter id="cha-elements">
<chapter id="chapter-elements">
<title>Elements</title>
<para>
The most important object in <application>GStreamer</application> for the
application programmer is the <classname>GstElement</classname> object.
</para>
<sect1 id="sec-elements-design">
<sect1 id="section-elements-design">
<title>What is an element ?</title>
<para>
An element is the basic building block for the media pipeline.
......@@ -16,26 +16,26 @@
<para>
Elements, from the perspective of GStreamer, are viewed as "black boxes"
with a number of different aspects. One of these aspects is the presence
of "pads" (see <xref linkend="cha-pads"/>), or link points. This terminology arises from soldering;
of "pads" (see <xref linkend="chapter-pads"/>), or link points. This terminology arises from soldering;
pads are where wires can be attached.
</para>
</sect1>
<sect1 id="sec-elements-types">
<sect1 id="section-elements-types">
<title>Types of elements</title>
<sect2 id="sec-elements-src">
<sect2 id="section-elements-src">
<title>Source elements</title>
<para>
Source elements generate data for use by a pipeline, for example
reading from disk or from a sound card.
</para>
<para>
<xref linkend="sec-element-srcimg"/> shows how we will visualise
<xref linkend="section-element-srcimg"/> shows how we will visualise
a source element.
We always draw a source pad to the right of the element.
</para>
<figure float="1" id="sec-element-srcimg">
<figure float="1" id="section-element-srcimg">
<title>Visualisation of a source element</title>
<mediaobject>
<imageobject>
......@@ -50,7 +50,7 @@
</para>
</sect2>
<sect2 id="sec-elements-filter">
<sect2 id="section-elements-filter">
<title>Filters and codecs</title>
<para>
Filter elements have both input and output pads. They operate on
......@@ -63,7 +63,7 @@
for example, a video mixer might have two input pads (the images of
the two different video streams) and one output pad.
</para>
<figure float="1" id="sec-element-filterimg">
<figure float="1" id="section-element-filterimg">
<title>Visualisation of a filter element</title>
<mediaobject>
<imageobject>
......@@ -72,12 +72,12 @@
</mediaobject>
</figure>
<para>
<xref linkend="sec-element-filterimg"/> shows how we will visualise
<xref linkend="section-element-filterimg"/> shows how we will visualise
a filter element.
This element has one sink (input) pad and one source (output) pad.
Sink pads are drawn on the left of the element.
</para>
<figure float="1" id="sec-element-multifilterimg">
<figure float="1" id="section-element-multifilterimg">
<title>Visualisation of a filter element with
more than one output pad</title>
<mediaobject>
......@@ -88,7 +88,7 @@
</mediaobject>
</figure>
<para>
<xref linkend="sec-element-filterimg"/> shows the visualisation of a filter element with
<xref linkend="section-element-filterimg"/> shows the visualisation of a filter element with
more than one output pad. An example of such a filter is the AVI
demultiplexer. This element will parse the input data and
extract the audio and video data. Most of these filters dynamically
......@@ -97,15 +97,15 @@
</para>
</sect2>
<sect2 id="sec-elements-sink">
<sect2 id="section-elements-sink">
<title>Sink elements</title>
<para>
Sink elements are end points in a media pipeline. They accept
data but do not produce anything. Disk writing, soundcard playback,
and video output would all be implemented by sink elements.
<xref linkend="sec-element-sinkimg"/> shows a sink element.
<xref linkend="section-element-sinkimg"/> shows a sink element.
</para>
<figure float="1" id="sec-element-sinkimg">
<figure float="1" id="section-element-sinkimg">
<title>Visualisation of a sink element</title>
<mediaobject>
<imageobject>
......
<chapter id="cha-hello">
<chapter id="chapter-hello-world">
<title>Your first application</title>
<para>
This chapter describes the most rudimentary aspects of a
......@@ -7,7 +7,7 @@
pausing and stopping the pipeline.
</para>
<sect1>
<sect1 id="section-hello-world">
<title>Hello world</title>
<para>
We will create a simple first application, a complete MP3 player, using
......@@ -177,7 +177,7 @@ main (int argc, char *argv[])
We now have a created a complete pipeline. We can visualise the
pipeline as follows:
</para>
<figure float="1" id="sec-hello-img">
<figure float="1" id="section-hello-img">
<title>The "hello world" pipeline</title>
<mediaobject>
<imageobject>
......@@ -232,7 +232,7 @@ main (int argc, char *argv[])
</sect1>
<sect1>
<sect1 id="section-hello-world-compile">
<title>Compiling helloworld.c</title>
<para>
To compile the helloworld example, use:
......@@ -256,7 +256,7 @@ main (int argc, char *argv[])
</programlisting>
</sect1>
<sect1>
<sect1 id="section-hello-world-conclusion">
<title>Conclusion</title>
<para>
This concludes our first example. As you see, setting up a pipeline
......
<chapter id="cha-initialisation">
<chapter id="chapter-initialisation">
<title>Initializing <application>GStreamer</application></title>
<para>
When writing a <application>GStreamer</application> application, you can
......
<chapter id="cha-pads">
<chapter id="chapter-pads">
<title>Pads</title>
<para>
As we have seen in <xref linkend="cha-elements"/>, the pads are the element's
As we have seen in <xref linkend="chapter-elements"/>, the pads are the element's
interface to the outside world.
</para>
<para>
The specific type of media that the element can handle will be exposed by the pads.
The description of this media type is done with capabilities(see
<xref linkend="sec-caps"/>)
<xref linkend="section-caps"/>)
</para>
<para>
......@@ -24,10 +24,10 @@
</para></footnote>
</para>
<sect1 id="sec-pads-type">
<sect1 id="section-pads-type">
<title>Types of pads</title>
<sect2 id="sec-pads-dynamic">
<sect2 id="section-pads-dynamic">
<title>Dynamic pads</title>
<para>
Some elements might not have all of their pads when the element is
......@@ -47,7 +47,7 @@
pipelines later on in this manual.
</para>
</sect2>
<sect2 id="sec-pads-request">
<sect2 id="section-pads-request">
<title>Request pads</title>
<para>
An element can also have request pads. These pads are not created
......@@ -63,7 +63,7 @@
</sect1>
<sect1 id="sec-caps">
<sect1 id="section-caps">
<title>Capabilities of a pad</title>
<para>
Since the pads play a very important role in how the element is viewed by the
......@@ -76,7 +76,7 @@
Plugin Writer's Guide.
</para>
<sect2 id="sec-pads-caps">
<sect2 id="section-pads-caps">
<title>Capabilities</title>
<para>
Capabilities are attached to a pad in order to describe
......@@ -137,7 +137,7 @@ Pads:
rate: Integer range: 11025 - 48000
</programlisting>
</sect2>
<sect2 id="sec-pads-props">
<sect2 id="section-pads-props">
<title>What are properties ?</title>
<para>
Properties are used to describe extra information for
......@@ -217,7 +217,7 @@ Pads:
</itemizedlist>
</sect2>
<sect2 id="sec-pads-caps-use">
<sect2 id="section-pads-caps-use">
<title>What capabilities are used for</title>
<para>
Capabilities describe in great detail the type of media that is handled by the pads.
......
<chapter id="cha-plugins">
<title>Plugins</title>
<!-- FIXME: introduce type definitions before this chapter -->
<para>
A plugin is a shared library that contains at least one of the following
items:
</para>
<itemizedlist>
<listitem>
<para>
one or more element factories
</para>
</listitem>
<listitem>
<para>
one or more type definitions
</para>
</listitem>
<listitem>
<para>
one or more auto-pluggers
</para>
</listitem>
<listitem>
<para>
exported symbols for use in other plugins
</para>
</listitem>