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
Next >>>
Introduction