Different Types of Dynamic Parameter

There are currently only two implementations of dparams so far. They are both for real-time use so should be run in the "synchronous" mode.

GstDParam - the base dparam type

All dparam implementations will subclass from this type. It provides a basic implementation which simply propagates any value changes as soon as it can. A new instance can be created with the function GstDParam* gst_dparam_new (GType type). It has the following object properties:

GstDParamSmooth - smoothing real-time dparam

Some parameter changes can create audible artifacts if they change too rapidly. The GstDParamSmooth implementation can greatly reduce these artifacts by limiting the rate at which the value can change. This is currently only supported for double and float dparams - the other types fall back to the default implementation. A new instance can be created with the function GstDParam* gst_dpsmooth_new (GType type). It has the following object properties:

Audible artifacts may not be completely eliminated by using this dparam. The only way to eliminate artifacts such as "zipper noise" would be for the element to implement its required dparams using the array method. This would allow dparams to change parameters at the sample rate which should eliminate any artifacts.

Timelined dparams

A yet-to-be-implemented subclass of GstDParam will add an API which allows the creation and manipulation of points on a timeline. This subclass will also provide a dparam implementation which uses linear interpolation between these points to find the dparam value at any given time. Further subclasses can extend this functionality to implement more exotic interpolation algorithms such as splines.