[Bug 743248] Add new control binding GstAppControlBinding

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jan 22 04:35:10 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=743248
  GStreamer | gstreamer (core) | unspecified

--- Comment #7 from Heinrich Fink <hfink at toolsonair.com> 2015-01-22 12:35:08 UTC ---
I would also to sum up the discussions (partially from IRC) about this bug:

(1) Adding a callback/signal in gst_object_sync_values probably solves the
problem of setting multiple properties atomically more elegantly w.r.t. the
necessary amount of client code because only a single callback is needed for
setting multiple properties. This could lead to multiple callbacks per sync,
though, coming from different sources. These need to be filtered by the app. A
one-shot notification could be useful if multiple properties need to be changed
atomically, but only once.

(2) GstAppControlBinding implements GstControlBinding, and as such could
potentially be reused in any code that uses GstControlBinding already. However,
it seems that GstControlBinding is only used by gst_object_sync_value anyway.

(3) GstAppControlBinding has the advantage that no existing GStreamer core
classes need to be changed, i.e. it only uses already-stable ABI.

(4) GstControlBinding / GstControlSource could be redesigned to support a wider
range of use cases for live/scheduled property changes in general, and for this
bug's use case in particular. g_object_bind_property_full could be useful here.
Updating multiple properties at once is something that could also be part of
this design (a transaction of value changes, possibly establishing an
one-to-many relationship between sources and properties via a new controller
design).

I can't judge the ramifications of (1), or how useful (2) really is, with my
limited experience of the overall GStreamer ecosystem. Because of (3), we could
just leave this bug open, with the attached patch for anyone to use, and to
work around the issue,  until (4) would really nail this issue. But (4) needs
much more input and better documentation of use cases. I would be happy to help
out here, once I can afford shifting my focus on the requirements of parameter
controls, and once I can speak more publicly about my current work (mostly a
time-issue than a legal one) :) (summer/spring 2015?).

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list