org.gstreamer.controller
Class Controller

java.lang.Object
  extended by org.gstreamer.lowlevel.NativeValue
      extended by org.gstreamer.lowlevel.Handle
          extended by org.gstreamer.lowlevel.NativeObject
              extended by org.gstreamer.lowlevel.RefCountedObject
                  extended by org.gstreamer.GObject
                      extended by org.gstreamer.controller.Controller

public class Controller
extends GObject

The controller subsystem offers a lightweight way to adjust gobject properties over stream-time. It works by using time-stamped value pairs that are queued for element-properties. At run-time the elements continously pull values changes for the current stream-time.

What needs to be changed in a GstElement? Very little - it is just two steps to make a plugin controllable!

This will made the controller to update all gobject properties that are under control with the current values based on timestamp.

What needs to be done in applications? Again its not a lot to change.

  • first put some properties under control, by calling controller = gst_object_control_properties (object, "prop1", "prop2",...);
  • Get a GstControlSource for the property and set it up. csource = gst_interpolation_control_source_new(); gst_interpolation_control_source_set_interpolation_mode(csource, mode); gst_interpolation_control_source_set (csource,0 * GST_SECOND, value1); gst_interpolation_control_source_set (csource,1 * GST_SECOND, value2);
  • Set the GstControlSource in the controller. gst_controller_set_control_source (controller, "prop1", csource);
  • start your pipeline