mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
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:
parent
3408d28133
commit
4e1993625f
4 changed files with 146 additions and 84 deletions
|
@ -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
82
docs/fwg/concepts.sgml
Normal 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>
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue