blob: 1eacb7e57169d3d207b8c4e4cd6d8d1a197f87fb [file] [log] [blame]
Overview
Introduction
(creating multimedia apps)
(pipeline/plugin based)
Motivation
(multitude of duplicate code)
(mostly focused on one goal)
(reinvent plugin mechanisms)
(network transparency?)
(catch up with Windows(tm) world)
Goals
(clean and powerfull)
(building graphs)
(building plugins)
(object oriented)
(using GTK+ object model)
(extensible)
(alow binary only plugins)
(alow high performance)
(HW acceleration)
(efficient memory use)
(kernel buffers etc..)
Basic concepts
elements
(what is it)
(types) sink, src, filter
(have pads)
linking elements
bin
(can contain elements)
pipeline (a complete graph)
thread (theaded operation)
buffers
(pass between elements)
(contains data)
(can cary metadata)
(use refcounting)
element states
(null)
(ready)
(paused)
(playing)
Building apps
helloworld
(fdsrc->mp3decoder->audiosink)
(step by step explanation)
More on factories
problems with helloworld
MIME types
GStreamer types
Basic types
Your second application
advanced concepts
threads
queues
cothreads
dynamic pipeline construction
ghost pads
type detection
utility functions
XML in GStreamer
(saving)
(loading a pipeline)
Plugin development
plugin types
chain based
loop based
buffers
metadata
subbufers
adding pads
libraries
plugin registry
types
type detection
QoS messages
clocks
GStreamer programs
editor
gstplay