GStreamer Application Development Manual

Wim Taymans

Steve Baker

Andy Wingo

Legal Notice
Table of Contents
I. Overview
Introduction
What is GStreamer?
Motivation
Current problems
Goals
The design goals
II. Basic concepts
Initializing GStreamer
The popt interface
GstElement
What is a GstElement
Creating a GstElement
GstElement properties
GstElement signals
More about GstElementFactory
Plugins
GstPad
Getting pads from an element
Capabilities of a GstPad
Linking elements
Making simple links
Making filtered links
Bins
Creating a bin
Adding elements to a bin
Custom bins
Ghost pads
Buffers
Element states
The different element states
The NULL state
The READY state
The PLAYING state
The PAUSED state
III. Building an application
Your first application
Hello world
Compiling helloworld.c
Conclusion
More on factories
The problems with the helloworld example
More on MIME Types
GStreamer types
Creating elements with the factory
GStreamer basic types
IV. Advanced GStreamer concepts
Threads
Constraints placed on the pipeline by the GstThread
When would you want to use a thread?
Queues
Cothreads
Chain-based elements
Loop-based elements
Understanding schedulers
Clocks in GStreamer
Dynamic pipelines
Typedetection
Autoplugging
Using autoplugging
Using the GstAutoplugCache element
Another approach to autoplugging
Your second application
Autoplugging helloworld
Dynamic Parameters
Getting Started
Creating and Attaching Dynamic Parameters
Changing Dynamic Parameter Values
Different Types of Dynamic Parameter
V. XML in GStreamer
XML in GStreamer
Turning GstElements into XML
Loading a GstElement from an XML file
Adding custom XML tags into the core XML data
VI. Appendices
Debugging
Command line options
Adding a custom debug handler
Programs
gst-register
gst-launch
gst-inspect
gst-play
Components
GstPlay
GstMediaPlay
GstEditor
Gnome integration
Command line options
Quotes from the Developers