[gst-devel] Re: dparams roadmap (AKA dparams are dead, long live control pads)

Stefan Kost ensonic at hora-obscura.de
Tue Mar 1 01:53:09 CET 2005

Edward Hervey schrieb:

>>== Removing envelope points
>>gboolean gst_envelope_set (...);
>>gboolean gst_envelope_set_many (...);
>>can be used to add control changes at given timestamps.
>>We also need API to remove single control changes (imagine you cut a piece of video/audio from the timeline, one won't need the envelope there):
>>gboolean gst_envelope_remove (...);
>>gboolean gst_envelope_remove_many (...);
>  I agree on the principle, it should be allowed although it's just to
>clean up data that wouldn't be used anyway.
Why do you think that it would not be used? E.g. in our music 
application we have a sequence (timeline). The sequence has tracks and 
each track belongs to a generator (source), effect or sink. One can 
place patterns on each track's timeline. A pattern is infact just a 
chunk of control data. With the new approach I would just add the value 
changes to the envelope.
Now the user can also move patterns back and forth, as well as removing 
them. Means we need a methods that removes a timestamped value too. 
Maybe even a method that removes all timestamped values in a timeregion.

This boils down to steves question, wheter the list of timestamped 
values one gets by gst_envelope_get_all() is a copy or is the real list 
and the app is alowed to manipulate it.
I am for returning a copy and going through the 'pain' to provide api to 
manipulate the list. This way we keep the option of changing internals. 
Shouldn't be too hard to implement then some convinience methods like:
gst_envelope_move_region(...) that adds/subtracts an ofset to the 
timestamps (and re sorts the list).

> This makes me think that
>maybe we should need a way to reset all values for an "enveloped"
>property, something like :
>  gboolean gst_envelope_reset_property (GstEnvelope*, gchar*);

More information about the gstreamer-devel mailing list