[0.11] gstreamer: docs: update controller design doc
ensonic at kemper.freedesktop.org
Sun Jan 1 12:00:01 PST 2012
Author: Stefan Sauer <ensonic at users.sf.net>
Date: Sun Jan 1 20:59:22 2012 +0100
docs: update controller design doc
docs/design/part-controller.txt | 17 +++++++++++++++--
1 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/docs/design/part-controller.txt b/docs/design/part-controller.txt
index 6817b0d..c75da54 100644
@@ -12,12 +12,25 @@ Elements don't need to do much. They need to:
- call gst_object_sync_values (self, timestamp) in the processing function
before accessing the parameters.
+All ordered property types can be automated (int, double, boolean, enum).
-Application need to setup the property automation. For that they need to create
+Applications need to setup the property automation. For that they need to create
a GstControlSource and attach it to a property using GstControlBinding. Various
-control-sources and control-bindings exists. All control sources produce control
+control-sources and control-bindings exist. All control sources produce control
value sequences in the form of gdouble values. The control bindings map them to
the value range and type of the bound property.
+One control-source can be attached to one or more properties at the same time.
+If it is attached multiple times, then each control-binding will scale and
+convert the control values to the target property type and range.
+One can create complex control-curves by using a GstInterpolationControlSource.
+This allows the classic user editable control-curve (often seen in audio/video
+editors). Another way is to use computed control curves. GstLFOControlSource can
+generate various repetitive signals. Those can be made more complex by chaining
+the control sources. One can attach another control-source to e.g. modulate the
+frequency of the first GstLFOControlSource.
More information about the gstreamer-commits