[gst-devel] GstController and live updates from user interaction
steve at stevebaker.org
Mon Apr 18 02:20:12 CEST 2005
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.
More information about the gstreamer-devel