Commit graph

15 commits

Author SHA1 Message Date
Adrian Pardini
d4f6c8e0e6 controller: fixes int overflow with properties that span +-INT_MAX
When the range for a property is defined as -INT_MAX-1 .. INT_MAX, like
the xpos in a videomixer the following expression in the macro
definitions of convert_g_value_to_##type (and the equivalent in
convert_value_to_##type)

v = pspec->minimum + (g##type) ROUNDING_OP ((pspec->maximum - pspec->minimum) * s);

are converted to:

v = -2147483648 + (g##type) ROUNDING_OP ((2147483647 - -2147483648) * s);

(2147483647 - -2147483648) overflows to -1 and the net result is:

v = -2147483648 + (g##type) ROUNDING_OP (-1 * s);

so v only takes the values -2147483648 for s == 0 and 2147483647
for s == 1.

Rewriting the expression as minimum*(1-s) + maximum*s gives the correct
result in this case.

https://bugzilla.gnome.org//show_bug.cgi?id=705630
2013-08-08 12:31:49 +02:00
Stefan Sauer
03075cd144 docs: mention clipping of values in control-binding docs 2013-03-08 13:16:40 +01:00
Stefan Sauer
ec55363da3 controlbinding: relax the pspec for the control-source
We can change control sources on controlbindings.
2013-03-07 09:18:26 +01:00
Stefan Sauer
56f6f022e2 controlbinding: error handling for binding controlsources to wrong properties
Add warning if property is not suitable for controlling. When adding a control-
binding check that pspec!=NULL.
2013-02-08 21:38:22 +01:00
Stefan Sauer
fba696eb05 docs: update the controller docs
Add the control bindings to the docs. Add a little more detail.
2013-02-01 22:00:18 +01:00
Tim-Philipp Müller
666c8c11c6 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 20:44:48 +00:00
Mark Nauwelaerts
357cf18fd5 libs: adjust comment style 2012-09-10 12:16:06 +02:00
Tim-Philipp Müller
36d5c586b1 controller: fix direct control binding double -> int conversion
Round properly to nearest integer. Fixes controller
unit test on PowerPC G4.
2012-09-07 01:02:10 +01:00
Chun-wei Fan
94cbf34300 controlbindings: include gst/math-compat.h for isnan()
Due to the usage of isnan(), where an implementation is added into
gst/math-compat.h. Fixes build on Visual C++.

https://bugzilla.gnome.org/show_bug.cgi?id=679112
2012-07-02 20:31:10 +01:00
Evan Nemerson
9b3d8523d2 controller: assorted minor introspection fixes 2012-06-19 19:55:02 -07:00
Stefan Sauer
3de656121f controlbindings: add comments for sparse control source 2012-04-25 20:19:24 +02:00
Stefan Sauer
772c58e255 controller: expand the api to offer functions for plain and GValue arrays
Rename the _get_value_array() functions to _get_g_value_array() and reintroduce
the former to operate on plain unboxed c datatypes (like in 0.10). The _g_value
variants are for bindings while the _value ones are more suited to processing
in elements.
2012-04-25 20:19:23 +02:00
Edward Hervey
2b49855494 controller: Chain up to parent class dispose/finalize
Avoids leaks
2012-04-12 14:59:52 +02:00
Stefan Sauer
f2ffa0fc65 controller: dup the objects to avoid premature frees 2012-04-05 21:17:57 +02:00
Stefan Sauer
4deaf9b8be controller: rename control-bindings
gst_control_binding_xxx -> gst_xxx_control_binding for consistency.
2012-01-30 21:18:57 +01:00
Renamed from libs/gst/controller/gstcontrolbindingdirect.c (Browse further)