mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-28 20:51:13 +00:00
First pass at an outline for the Filter Writer's Guide. Mostly complete, though the structure needs some work. Just...
Original commit message from CVS: First pass at an outline for the Filter Writer's Guide. Mostly complete, though the structure needs some work. Just need someone to write it ;-)
This commit is contained in:
parent
f2128112c3
commit
16834308e7
1 changed files with 57 additions and 0 deletions
57
docs/random/filter-writers-guide
Normal file
57
docs/random/filter-writers-guide
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
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
|
||||||
|
Doing it the easy way with FilterFactory
|
||||||
|
(NOTE: FilterFactory doesn't exist yet)
|
||||||
|
Doing it the hard way with G[tk]Object
|
||||||
|
An identity filter
|
||||||
|
Building an object with pads
|
||||||
|
Attaching functions
|
||||||
|
The chain function
|
||||||
|
The plugin_init function
|
||||||
|
Registering the types
|
||||||
|
Registering the filter
|
||||||
|
Building a simple test application
|
||||||
|
Initialization
|
||||||
|
Instantiating the plugins
|
||||||
|
(NOTE: we really should have a debugging Sink)
|
||||||
|
Connecting them
|
||||||
|
Running the pipeline
|
||||||
|
Loop-based Elements
|
||||||
|
How scheduling works, aka pushing and pulling
|
||||||
|
How a loopfunc works, aka pulling and pushing
|
||||||
|
Adding a second output
|
||||||
|
Identity is now a tee
|
||||||
|
Modifying the test application
|
||||||
|
Types and Properties
|
||||||
|
Building a simple format for testing
|
||||||
|
A simple MIME type
|
||||||
|
Type properties
|
||||||
|
Typefind functions and autopluggin
|
||||||
|
Buffers and Metadata
|
||||||
|
Anatomy of a Buffer
|
||||||
|
Refcounts and mutability
|
||||||
|
Metadata
|
||||||
|
How Properties work efficiently
|
||||||
|
Metadata mutability
|
||||||
|
(FIXME: this is an unsolved problem)
|
||||||
|
Sources and Sinks
|
||||||
|
Writing a source
|
||||||
|
Pull vs loop based
|
||||||
|
Region pulling
|
||||||
|
(NOTE: somewhere explain how filters use this)
|
||||||
|
Writing a sink
|
||||||
|
Gee, that was easy
|
||||||
|
State management
|
||||||
|
What are states?
|
||||||
|
Mangaging filter state
|
Loading…
Reference in a new issue