mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-19 08:11:16 +00:00
d4f6c8e0e6
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 |
||
---|---|---|
.. | ||
.gitignore | ||
controller.h | ||
gstargbcontrolbinding.c | ||
gstargbcontrolbinding.h | ||
gstdirectcontrolbinding.c | ||
gstdirectcontrolbinding.h | ||
gstinterpolationcontrolsource.c | ||
gstinterpolationcontrolsource.h | ||
gstlfocontrolsource.c | ||
gstlfocontrolsource.h | ||
gsttimedvaluecontrolsource.c | ||
gsttimedvaluecontrolsource.h | ||
gsttriggercontrolsource.c | ||
gsttriggercontrolsource.h | ||
Makefile.am |