mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-26 18:20:44 +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