mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
Renamed the filter writers guide to plugin writers guide.
Original commit message from CVS: Renamed the filter writers guide to plugin writers guide. Added in the planned section headings.
This commit is contained in:
parent
7a40eda7b6
commit
9f8702b992
3 changed files with 123 additions and 34 deletions
16
docs/fwg/.gitignore
vendored
16
docs/fwg/.gitignore
vendored
|
@ -3,11 +3,11 @@ Makefile.in
|
||||||
*.bak
|
*.bak
|
||||||
.deps
|
.deps
|
||||||
images
|
images
|
||||||
gst-filter-writers-guide
|
gst-plugin-writers-guide
|
||||||
gst-filter-writers-guide.pdf
|
gst-plugin-writers-guide.pdf
|
||||||
gst-filter-writers-guide.ps
|
gst-plugin-writers-guide.ps
|
||||||
gst-filter-writers-guide.dvi
|
gst-plugin-writers-guide.dvi
|
||||||
gst-filter-writers-guide.tex
|
gst-plugin-writers-guide.tex
|
||||||
gst-filter-writers-guide.log
|
gst-plugin-writers-guide.log
|
||||||
gst-filter-writers-guide.aux
|
gst-plugin-writers-guide.aux
|
||||||
gst-filter-writers-guide.junk
|
gst-plugin-writers-guide.junk
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
manualname = gst-filter-writers-guide
|
manualname = gst-plugin-writers-guide
|
||||||
htmlname = index.html
|
htmlname = index.html
|
||||||
|
|
||||||
sgml_files = gst-filter-writers-guide.sgml \
|
sgml_files = gst-plugin-writers-guide.sgml \
|
||||||
titlepage.sgml \
|
titlepage.sgml \
|
||||||
intro.sgml \
|
intro.sgml \
|
||||||
concepts.sgml
|
concepts.sgml
|
||||||
|
|
|
@ -4,12 +4,28 @@
|
||||||
<!ENTITY INTRO SYSTEM "intro.sgml">
|
<!ENTITY INTRO SYSTEM "intro.sgml">
|
||||||
|
|
||||||
<!ENTITY CONCEPTS SYSTEM "concepts.sgml">
|
<!ENTITY CONCEPTS SYSTEM "concepts.sgml">
|
||||||
|
|
||||||
|
<!ENTITY FIRSTPLUGIN SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY TESTAPP SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY LOOPBASED SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY TYPESNPROPS SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY BUFFERS SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY SRCNSINK SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY STATEMANAGE SYSTEM ".sgml">
|
||||||
|
|
||||||
|
<!ENTITY CHECKLIST SYSTEM ".sgml">
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<book id="index">
|
<book id="index">
|
||||||
&TITLEPAGE;
|
&TITLEPAGE;
|
||||||
|
|
||||||
<!-- ############# Overview - part ############### -->
|
<!-- ############# part ############### -->
|
||||||
|
|
||||||
<part id="introduction"><title>Introduction</title>
|
<part id="introduction"><title>Introduction</title>
|
||||||
<partintro>
|
<partintro>
|
||||||
|
@ -36,7 +52,7 @@
|
||||||
&INTRO;
|
&INTRO;
|
||||||
</part>
|
</part>
|
||||||
|
|
||||||
<!-- ############ Basic concepts - part ############# -->
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
<part id="basic-concepts"><title>Basic concepts</title>
|
<part id="basic-concepts"><title>Basic concepts</title>
|
||||||
<partintro>
|
<partintro>
|
||||||
|
@ -52,23 +68,21 @@
|
||||||
|
|
||||||
</part>
|
</part>
|
||||||
|
|
||||||
<!-- ############ Building A Filter - part ############# -->
|
<!-- ############ part ############# -->
|
||||||
</book>
|
|
||||||
|
|
||||||
|
<part id="first-plugin"><title>Building our first plugin</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
We are now have the neccessary concepts to build our first plugin.
|
||||||
|
We are going to build an element which has a single input pad and
|
||||||
|
a single output pad, and simply passes anything it reads on
|
||||||
|
the input pad through and out on the output pad. In a later
|
||||||
|
section we will convert this plugin into something less useless.
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&FIRSTPLUGIN;
|
||||||
|
|
||||||
GStreamer Filter Writer's Guide
|
|
||||||
===============================
|
|
||||||
|
|
||||||
Outline:
|
|
||||||
|
|
||||||
Basic concepts
|
|
||||||
Chain vs loop elements
|
|
||||||
Scheduling
|
|
||||||
Buffers
|
|
||||||
Typing and Properties
|
|
||||||
Metadata
|
|
||||||
Building our first filter
|
|
||||||
Constructing the boilerplate
|
Constructing the boilerplate
|
||||||
Doing it the easy way with FilterFactory
|
Doing it the easy way with FilterFactory
|
||||||
(NOTE: FilterFactory doesn't exist yet)
|
(NOTE: FilterFactory doesn't exist yet)
|
||||||
|
@ -80,43 +94,118 @@ Building our first filter
|
||||||
The plugin_init function
|
The plugin_init function
|
||||||
Registering the types
|
Registering the types
|
||||||
Registering the filter
|
Registering the filter
|
||||||
Building a simple test application
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="test-app"><title>Building a simple test application</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&TESTAPP;
|
||||||
Initialization
|
Initialization
|
||||||
Instantiating the plugins
|
Instantiating the plugins
|
||||||
(NOTE: we really should have a debugging Sink)
|
(NOTE: we really should have a debugging Sink)
|
||||||
Connecting them
|
Connecting them
|
||||||
Running the pipeline
|
Running the pipeline
|
||||||
Loop-based Elements
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="loopbased"><title>Loop-based Elements</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&LOOPBASED;
|
||||||
How scheduling works, aka pushing and pulling
|
How scheduling works, aka pushing and pulling
|
||||||
How a loopfunc works, aka pulling and pushing
|
How a loopfunc works, aka pulling and pushing
|
||||||
Adding a second output
|
Adding a second output
|
||||||
Identity is now a tee
|
Identity is now a tee
|
||||||
Modifying the test application
|
Modifying the test application
|
||||||
Types and Properties
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="typesnprops"><title>Types and Properties</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&TYPESNPROPS;
|
||||||
Building a simple format for testing
|
Building a simple format for testing
|
||||||
A simple MIME type
|
A simple MIME type
|
||||||
Type properties
|
Type properties
|
||||||
Typefind functions and autopluggin
|
Typefind functions and autoplugging
|
||||||
Buffers and Metadata
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="buffersnmeta"><title>Buffers and Metadata</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&BUFFERS;
|
||||||
Anatomy of a Buffer
|
Anatomy of a Buffer
|
||||||
Refcounts and mutability
|
Refcounts and mutability
|
||||||
Metadata
|
Metadata
|
||||||
How Properties work efficiently
|
How Properties work efficiently
|
||||||
Metadata mutability
|
Metadata mutability
|
||||||
(FIXME: this is an unsolved problem)
|
(FIXME: this is an unsolved problem)
|
||||||
Sources and Sinks
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="srcnsink"><title>Sources and Sinks</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&SRCNSINK;
|
||||||
Writing a source
|
Writing a source
|
||||||
Pull vs loop based
|
Pull vs loop based
|
||||||
Region pulling
|
Region pulling
|
||||||
(NOTE: somewhere explain how filters use this)
|
(NOTE: somewhere explain how filters use this)
|
||||||
Writing a sink
|
Writing a sink
|
||||||
Gee, that was easy
|
Gee, that was easy
|
||||||
State management
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="statemanage"><title>State management</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&STATEMANAGE;
|
||||||
What are states?
|
What are states?
|
||||||
Mangaging filter state
|
Mangaging filter state
|
||||||
Checklist
|
</part>
|
||||||
|
|
||||||
|
<!-- ############ part ############# -->
|
||||||
|
|
||||||
|
<part id="checklist"><title>Checklist</title>
|
||||||
|
<partintro>
|
||||||
|
<para>
|
||||||
|
</para>
|
||||||
|
</partintro>
|
||||||
|
|
||||||
|
&CHECKLIST;
|
||||||
Things to check when writing a filter
|
Things to check when writing a filter
|
||||||
Things to check when writing a source or sink
|
Things to check when writing a source or sink
|
||||||
|
</part>
|
||||||
|
|
||||||
|
</book>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue