mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-21 07:46:38 +00:00
92 lines
1.5 KiB
Text
92 lines
1.5 KiB
Text
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
|
|
subbuffers
|
|
adding pads
|
|
libraries
|
|
plugin registry
|
|
types
|
|
type detection
|
|
QoS messages
|
|
clocks
|
|
|
|
GStreamer programs
|
|
editor
|
|
gstplay
|
|
|
|
|