GStreamer Application Development Manual (0.10.12)

Wim Taymans

Steve Baker

Andy Wingo

Ronald S. Bultje

Stefan Kost

Legal Notice
Table of Contents
I. Introduction
Preface
What is GStreamer?
Who Should Read This Manual?
Preliminary Reading
Structure of this Manual
Motivation & Goals
Current problems
The design goals
Foundations
Elements
Bins and pipelines
Pads
II. Building an Application
Initializing GStreamer
Simple initialization
The GOption interface
Elements
What are elements?
Creating a GstElement
Using an element as a GObject
More about element factories
Linking elements
Element States
Bins
What are bins
Creating a bin
Custom bins
Bus
How to use a bus
Message types
Pads and capabilities
Pads
Capabilities of a pad
What capabilities are used for
Ghost pads
Buffers and Events
Buffers
Events
Your first application
Hello world
Compiling and Running helloworld.c
Conclusion
III. Advanced GStreamer concepts
Position tracking and seeking
Querying: getting the position or length of a stream
Events: seeking (and more)
Metadata
Metadata reading
Tag writing
Interfaces
The URI interface
The Mixer interface
The Tuner interface
The Color Balance interface
The Property Probe interface
The X Overlay interface
Clocks in GStreamer
Clock providers
Clock slaves
Dynamic Controllable Parameters
Getting Started
Setting up parameter control
Threads
When would you want to force a thread?
Scheduling in GStreamer
Autoplugging
MIME-types as a way to identity streams
Media stream type detection
Plugging together dynamic pipelines
Pipeline manipulation
Data probing
Manually adding or removing data from/to a pipeline
Embedding static elements in your application
IV. Higher-level interfaces for GStreamer applications
Components
Playbin
Decodebin
GstEditor
XML in GStreamer
Turning GstElements into XML
Loading a GstElement from an XML file
Adding custom XML tags into the core XML data
V. Appendices
Things to check when writing an application
Good programming habits
Debugging
Conversion plugins
Utility applications provided with GStreamer
Porting 0.8 applications to 0.10
List of changes
Integration
Linux and UNIX-like operating systems
GNOME desktop
KDE desktop
OS X
Windows
Licensing advisory
How to license the applications you build with GStreamer
Windows support
Building GStreamer under Win32
Installation on the system
Quotes from the Developers