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) connecting elements bin (can contain elements) pipeline (a complete graph) 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) advanced concepts threads queues cothreads dynamic pipeline construction ghost pads types type detection plugin registry bufferpools Quality of service utility functions XML in GStreamer (saving) (loading a pipeline) Plugin development buffers metadata subbufers adding pads libraries GStreamer programs editor gstplay