GStreamer Plugin Writer's Guide

Richard John Boulton

Erik Walthinsen

Steve Baker

Leif Johnson

This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, v1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).


Table of Contents

I. Introduction
1. Preface
Who Should Read This Guide?
Preliminary Reading
Structure of This Guide
2. Basic Concepts
Elements and Plugins
Pads
Buffers
Buffer Allocation and Buffer Pools
Types and Properties
The Basic Types
Events
II. Building a Filter
3. Constructing the Boilerplate
Getting the Gstreamer Plugin Templates
Using the Project Stamp
Examining the Basic Code
Creating a Filter With FilterFactory (Future)
GstElementDetails
Constructor Functions
The plugin_init function
4. Specifying the pads
5. The chain function
6. What are states?
7. Mangaging filter state
8. Adding Arguments
9. Signals
10. Initialization
11. Instantiating the plugins
12. Linking the plugins
13. Running the pipeline
III. Advanced Filter Concepts
14. How scheduling works
15. How a loopfunc works
16. Adding a second output
17. Modifying the test application
18. Types and Properties
Building a Simple Format for Testing
A Simple Mime Type
Type Properties
Typefind Functions and Autoplugging
19. Request pads
20. Supporting Dynamic Parameters
Comparing Dynamic Parameters with GObject Properties
21. Getting Started
22. Defining Parameter Specificiations
Direct Method
Callback Method
Array Method
23. The Data Processing Loop
DParam Manager Modes
DParam Manager Modes
IV. Other Element Types
24. Writing a Source
25. Writing a Sink
26. Writing an Autoplugger
V. Appendices
27. Things to check when writing a filter
28. Things to check when writing a source or sink

List of Tables

2.1. Table of Basic Types

List of Examples

3.1. Example Plugin Header File