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