Commit graph

24 commits

Author SHA1 Message Date
Thibault Saunier
aaa95cfef7 directcontrolbinding: Properly initialize default last_value
It was zero and in some condition it means that the control binding
values where ignored (as shown in the test). Setting it to MAXDOUBLE
so that the first time we sync the values from a a timestamp in the
right range the proper value is computed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/564>
2020-07-18 20:47:29 +00:00
Jordan Petridis
e2a70cb90f
gstdirectcontrolbinding: Fix integer comparison
i is declared as gint but then compared against `n_values` guint
in the for loop below.
2019-10-04 20:06:49 +03:00
Tim-Philipp Müller
57c8e0146f libs: figure out right export define in configure
Add new GST_API_EXPORT in config.h and use that for GST_*_API
decorators instead of GST_EXPORT.

The right export define depends on the toolchain and whether
we're using -fvisibility=hidden or not, so it's better to set it
to the right thing directly than hard-coding a compiler whitelist
in the public header.

We put the export define into config.h instead of passing it via the
command line to the compiler because it might contain spaces and brackets
and in the autotools scenario we'd have to pass that through multiple
layers of plumbing and Makefile/shell escaping and we're just not going
to be *that* lucky.

The export define is only used if we're compiling our lib, not by external
users of the lib headers, so it's not a problem to put it into config.h

Also, this means all .c files of libs need to include config.h
to get the export marker defined, so fix up a few that didn't
include config.h.

This commit depends on a common submodule commit that makes gst-glib-gen.mak
add an #include "config.h" to generated enum/marshal .c files for the
autotools build.

https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-24 08:39:37 +01:00
Thibault Saunier
a87b4551a6 Port gtk-doc comments to their equivalent markdown syntax
Modernizing our documentation and preparing a possible move to hotdoc.
This commits also adds missing @title metadatas to all SECTIONs
2017-01-27 16:36:38 -03:00
Sebastian Dröge
746f919af3 directcontrolbinding: Clarify in the documentation what the difference between absolute and not is 2016-10-13 18:01:14 +02:00
Thibault Saunier
438a83df58 controller: Do not unset uninitiallized GValue
In case the property was not interpollable we might never initialize
the GValue, we should thus never unset it.
2016-02-02 19:51:56 +01:00
Tim-Philipp Müller
86abdbfb55 directcontrolbinding: fix ABI break
Structure size was increased without adjustment of the padding.

https://bugzilla.gnome.org/show_bug.cgi?id=751622
https://bugzilla.gnome.org/show_bug.cgi?id=740502
2015-06-29 10:41:27 +01:00
Lazar Claudiu
cb2c141eac controller: Added absolute direct control binding, example and test
Fixes: 740502
API: gst_direct_control_binding_new_absolute
2015-06-12 10:07:24 +02:00
Rico Tzschichholz
f1971fe1e9 controlbindings: fix pspec relaxation for control source properties
The change should have been from PARAM_CONSTRUCT_ONLY to
PARAM_CONSTRUCT, otherwise bindings are affected, since
they look for the CONSTRUCT flag.

See ec55363d
2013-09-10 16:41:30 +01:00
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)