GStreamer Plugin Writer's Guide

Richard John Boulton

Erik Walthinsen


Table of Contents
I. Introduction
Do I care?
Preliminary reading
II. Basic concepts
Plugins
Elements
Buffers
Typing and Properties
Metadata
Scheduling
Chain vs Loop Elements
Autopluggers
III. Types and Properties
The basic types
Building a simple format for testing
A simple MIME type
Type properties
Typefind functions and autoplugging
IV. Building our first plugin
Constructing the boilerplate
Doing it the hard way with GstObject
Doing it the easy way with FilterFactory
Defining an element
GstElementDetails
Constructor functions
Specifying the pads
Attaching functions
The chain function
Adding arguments
Signals
Defining a type
The plugin_init function
Registering new types
Registering new element factories
Registering new autopluggers
V. Building a simple test application
Initialization
Instantiating the plugins
Connecting the plugins
Running the pipeline
VI. Loop-based Elements
How scheduling works
How a loopfunc works
Adding a second output
Modifying the test application
VII. Buffers and Metadata
VIII. Sources and Sinks
IX. State management
X. Checklist