[gstreamer-bugs] [Bug 450711] New: [GstController] Improve extensibility by providing a GstControlSource class

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sun Jun 24 11:59:21 PDT 2007


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=450711

  GStreamer | gstreamer (core) | Ver: HEAD CVS
           Summary: [GstController] Improve extensibility by providing a
                    GstControlSource class
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: Normal
         Component: gstreamer (core)
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: slomo at circular-chaos.org
         QAContact: gstreamer-bugs at lists.sourceforge.net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


Hi,
the attached patches drastically change GstController to be much more flexible.
With the current API it's nearly impossible to provide any other modes than
interpolation.

This is solved in those patches by adding a GstControlSource base class, which
provides _get_value() and _get_value_array() methods and a _bind() method for
binding it to a specific property.

Also provided is a GstInterpolationControlSource, which implements the current
interpolation logic as a GstControlSource. All old functions in GstController
that had somethnig to do with itnerpolation are now deprecated and are wrappers
for GstInterpolationControlSource. All old unit tests are working fine with
this.

The only drawback I'm aware of is, that the undocumented feature of handling
live values in GstController is not possible anymore.
Before it was possible to bypass the GstController by calling g_object_set()
for some property, it detected this automatically and only updated the property
again after the next control point.
As GstControlSource does not (and must not) know anything about control points
this is not possible anymore but IMHO this is not that large of a problem
because a) the feature was not documented and b) it wasn't very intuitive
anyway: why did the controller take effect again after the next control point?
why not after 2msecs? or never?
According to Stefan buzztard was the only application that used it and he's
fine with removing the feature and replacing it with
gst_controller_set_disabled() methods.

Someone please review :)

Bye

PS: The next GstControlSource I plan to implement will be a osscilator,
providing a few different wave forms.

PPS: Everything should be completely backward compatible except the live value
handling.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=450711.




More information about the Gstreamer-bugs mailing list