More updates: now have headings for the second section too, and some text for it... ;-)

Original commit message from CVS:
More updates: now have headings for the second section too, and some
text for it... ;-)
This commit is contained in:
Richard Boulton 2001-01-07 02:23:40 +00:00
parent 3408d28133
commit 4e1993625f
4 changed files with 146 additions and 84 deletions

View file

@ -1,7 +1,10 @@
manualname = gst-filter-writers-guide
htmlname = index.html
sgml_files = gst-filter-writers-guide.sgml
sgml_files = gst-filter-writers-guide.sgml \
titlepage.sgml \
intro.sgml \
concepts.sgml
fig_files =
eps_files =

82
docs/fwg/concepts.sgml Normal file
View file

@ -0,0 +1,82 @@
<chapter id="cha-plugins">
<title>Plugins</title>
<para>
Extensions to GStreamer can be made using a plugin mechanism. This is
used extensively in GStreamer even if only the standard package is
being used: a few very basic functions reside in the core library, and
all others are in a standard set of plugins.
</para>
<para>
Plugins are only loaded when needed: a plugin registry is used to
store the details of the plugins so that it is not neccessary to load
all plugins to determine which are needed.
This registry needs to be updated when a new plugin is added to the
system: see the <emphasis>gstreamer-register</emphasis> utility and the
documentation in the <emphasis>GStreamer Application Development
Manual</emphasis> for more details.
</para>
<para>
User extensions to GStreamer can be installed in the main plugin
directory, and will immediately be available for use in applications.
<emphasis>gstreamer-register</emphasis> should be run to update
the repository: but the system will work correctly even if it hasn't
been - it will just load the correct plugin faster.
</para>
<para>
User specific plugin directories and registries will be available in future
versions of GStreamer.
</para>
</chapter>
<chapter id="cha-elements">
<title>Elements</title>
<para>
Elements are at the core of GStreamer. Without elements, GStreamer is just
a bunch of pipe fittings with nothing to connect. A large number of
elements (filters, sources and sinks) ship with GStreamer, but extra
elements can also be written.
</para>
<para>
An element may be constructed in several different ways, but all must
conform to the same basic rules. A simple filter may be built with the
FilterFactory, where the only code that need be written is the actual
filter code. A more complex filter, or a source or sink, will need to be
written out fully for complete access to the features and performance
possible with GStreamer.
</para>
<para>
The implementation of a new element will be contained in a plugin:
a single plugin may contain the implementation of several elements, or
just a single one.
</para>
</chapter>
<chapter id="cha-buffers">
<title>Buffers</title>
<para>
</para>
</chapter>
<chapter id="cha-scheduling">
<title>Scheduling</title>
<para>
</para>
</chapter>
<chapter id="cha-chainloop">
<title>Chain vs Loop Elements</title>
<para>
</para>
</chapter>
<chapter id="cha-typing">
<title>Typing and Properties</title>
<para>
</para>
</chapter>
<chapter id="cha-metadata">
<title>Metadata</title>
<para>
</para>
</chapter>

View file

@ -2,11 +2,8 @@
<!ENTITY TITLEPAGE SYSTEM "titlepage.sgml">
<!ENTITY INTRO SYSTEM "intro.sgml">
<!ENTITY ELEMENTPADS SYSTEM "elementpads.sgml">
<!ENTITY BUFFERS SYSTEM "buffers.sgml">
<!ENTITY CHAINVSLOOP SYSTEM "chainvsloop.sgml">
<!ENTITY SCHEDULING SYSTEM "scheduling.sgml">
<!ENTITY TYPING SYSTEM "typing.sgml">
<!ENTITY CONCEPTS SYSTEM "concepts.sgml">
]>
<book id="index">
@ -14,9 +11,13 @@
<!-- ############# Overview - part ############### -->
<part id="overview"><title>Overview</title>
<part id="introduction"><title>Introduction</title>
<partintro>
<para>
<application>GStreamer</application> is a framework for creating
streaming media applications. It is extremely powerful and versatile,
and this versatility stems in part from its modularity, and its ability
to incorporate new modules seamlessly into its framework.
This document describes how to extend the capabilities of
<application>GStreamer</application> by creating new plugins.
</para>
@ -40,34 +41,14 @@
<part id="basic-concepts"><title>Basic concepts</title>
<partintro>
<para>
Filters are at the core of what GStreamer is. Without filters,
GStreamer is just a bunch of pipe fittings with nothing to
connect. A large number of filters (known as elements) ship with
GStreamer, but they are only capable of so much. If you wish to
extend it beyond these standard capabilities, you must write
filters.
</para>
<para>
A filter may be constructed in several different ways, but all must
conform to the same basic rules. A simple filter may be built
with the FilterFactory, where the only code that need be written
is the actual filter code. A more complex filter may need to be
written out fully for complete access to the features and
performance possible with GStreamer. This guide will explain all
the steps necessary for both methods.
This section introduces the basic concepts required to understand the
issues involved in extending <application>GStreamer</application>
</para>
</partintro>
&ELEMENTPADS;
&BUFFERS;
&CHAINVSLOOP;
&SCHEDULING;
&TYPING;
&CONCEPTS;
</part>

View file

@ -1,56 +1,52 @@
<chapter id="cha-intro">
<title>Introduction</title>
<chapter id="cha-doicare">
<title>Do I care?</title>
<para>
<application>GStreamer</application> is a framework for creating
streaming media applications. It is extremely powerful and versatile,
and this versatility stems in part from its modularity, and its ability
to incorporate new modules seamlessly into its framework.
This guide explains how to write new modules for GStreamer. It is
relevant to:
</para>
<itemizedlist>
<listitem>
<para>
Anyone who wants to add support for new input and output
devices, often called sources and sinks. For example,
adding the ability to write to a new video output system
could be done by writing an appropriate sink plugin.
</para>
</listitem>
<listitem>
<para>
Anyone who wants to add support for new ways of processing
data in GStreamer, often called
filters. For example, a new data format converter could be
created.
</para>
</listitem>
<listitem>
<para>
Anyone who wants to extend GStreamer in
any way: you need to have an understanding of how the plugin system
works before you can understand the constraints it places on the
rest of the code. And you might be surprised at how much can be
done with plugins.
</para>
</listitem>
</itemizedlist>
<para>
This guide is not relevant to you if you only want to use the existing
functionality of GStreamer, or use an application which uses GStreamer.
You lot can go away. Shoo... (You might find the <emphasis>GStreamer
Application Development Manual</emphasis> helpful though.)
</para>
</chapter>
<chapter id="cha-prelimreading">
<title>Preliminary reading</title>
<para>
The reader should be familiar with the basic workings of
<application>GStreamer</application>. For a gentle introduction to
GStreamer, you may wish to read the <emphasis>GStreamer Application
Development Manual</emphasis>. Since <application>GStreamer</application>
adheres to the GTK+ programming model, the reader is also assumed to
understand the basics of GTK+.
</para>
<sect1 id="sec-intro-doicare">
<title>Do I care?</title>
<para>
This guide explains how to write new modules for GStreamer. It is
relevant to:
<itemizedlist>
<listitem>
Anyone who wants to add support for new input and output
devices, often called sources and sinks. For example,
adding the ability to write to a new video output system
could be done by writing an appropriate sink plugin.
</listitem>
<listitem>
Anyone who wants to add support for new ways of processing
data in GStreamer, often called
filters. For example, a new data format converter could be
created.
</listitem>
<listitem>
Anyone who wants to extend GStreamer in
any way: you need to have an understanding of how the plugin system
works before you can understand the constraints it places on the
rest of the code. And you might be surprised at how much can be
done with plugins.
</listitem>
</itemizedlist>
</para>
<para>
This guide is not relevant to you if you only want to use the existing
functionality of GStreamer, or use an application which uses GStreamer.
You lot can go away. Shoo... (You might find the <emphasis>GStreamer
Application Development Manual</emphasis> helpful though.)
</para>
</sect1>
<sect1 id="sec-intro-reading">
<title>Preliminary reading</title>
<para>
The reader should be familiar with the basic workings of
<application>GStreamer</application>. For a gentle introduction to
GStreamer, you may wish to read the <emphasis>GStreamer Application
Development Manual</emphasis>. Since
<application>GStreamer</application> adheres to the GTK+ programming
model, the reader is also assumed to understand the basics of GTK+.
</para>
</sect1>
</chapter>