gstcontrol dynamic parameter functionality. This library provides a manager component (#GstDParamManager) that maintains a list of dynamically controlable parameters for a #GstElement. Just think of a volume slider in a mixer. #GstElement instances wanting to provide dynamic parameters, need to provide a #GParamSpec and an update method. The application that will later use the control parameter, will create a #DParam instance and attach that to use provided #GParamSpec and update method. The control library provides several #DParam implementations that can be used interchangably. The base on just updated the parameter, while others can smooth the control changes. To use this library in a application one needs to add some code to initialize it. Adding the control library to an application (step 1) ... &hash;include <gst/gst.h> &hash;include <gst/control/control.h> ... gst_init(&argc,&argv); gst_control_init(&argc,&argv); ... The next step is to get hold of the #GstDParamManager instance of a #GstElement and set the working mode of the manager. Adding the control library to an application (step 2) dparam_manager=gst_dpman_get_manager(element); gst_dpman_set_mode(dparam_manager, "synchronous"); Finally one need to attach a new #DParam to the paramter spec. Adding the control library to an application (step 3) pspec=gst_dpman_get_param_spec(dparam_manager,"volume"); dparam=gst_dparam_new(G_PARAM_SPEC_VALUE_TYPE(pspec)); gst_dpman_attach_dparam(dparam_manager,g_param_spec_get_name(pspecs),dparam); For a full example look at the gst-plugins/gst/sine/demo-dparams.c To add dparam support to a plugin look at gst-plugins/gst/sine/gstsinesrc.c or gst-plugins/gst/volume/gstvolume.c. The key concept is to call GST_DPMAN_PREPROCESS() before processing data and to wrap the data processing (chain or loop function) by GST_DPMAN_PROCESS(). This allows the manager to interupt processing to apply new control values. @argc: @argv: