[gst-devel] GstController and live updates from user interaction

Stefan Kost ensonic at hora-obscura.de
Mon Apr 18 03:21:14 CEST 2005

Hi Steve,
> On Mon, 2005-04-18 at 09:51 +0200, Stefan Kost wrote:
>>Now one scenarion ist to run the pipeline and along play back the param changes.
>>Another scenario is that a part of the pipeline runs in a loop and the user 
>>controlls the parameters via GUI. There are two sub-scenarios - just finding the 
>>right setting and recording param changes. The latter is easy, whenever the 
>>widget changes insert a new timstamped control value change. The first is not so 
>>easy. I see two possibillities:
>>* have an 'gboolean active' flag in a controlled property. Whenever the GUI 
>>changes set active to false (temporaily detaching the control-envelope) and 
>>directly setting the gobject-property. Problem here is , when to reattach the 
>>envelope (active=true)?
>>* have a 'GstTimedValue live_value' inside the property structure. Whenever a 
>>widget changes, set this value with timestamp=NOW. The controller will 
>>additionally check this value. For mode 'none' this will work as expected. For 
>>'linear' this will cause a fade towards the next timed value.
>>So its probably better to always return the live_value.value until a new 
>>timestamped value in the envelope has been reached. Then invalidate the 
>>live_value and continue with regular envelope.
> Here is another option - when a widget changes then set the value with
> timestamp=NOW and delete any points after NOW so it behaves like an
> overwrite-and-record mode. This means the value will remain constant
> until they change the widget again. This would be very handy sometimes
> but maybe not always.

Thats exactly how it will behave in recording mode. But when one just wants to 
try out settings, the current envelope should remain unaltered.


More information about the gstreamer-devel mailing list