mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
libs/gst/controller/gstinterpolation.c: Add support for retrieving value arrays when using the trigger interpolation ...
Original commit message from CVS: * libs/gst/controller/gstinterpolation.c: (interpolate_trigger_get_enum_value_array), (interpolate_trigger_get_string_value_array): Add support for retrieving value arrays when using the trigger interpolation mode.
This commit is contained in:
parent
51424c0da5
commit
e645e3d2f6
2 changed files with 71 additions and 11 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2007-05-21 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
|
* libs/gst/controller/gstinterpolation.c:
|
||||||
|
(interpolate_trigger_get_enum_value_array),
|
||||||
|
(interpolate_trigger_get_string_value_array):
|
||||||
|
Add support for retrieving value arrays when using the trigger
|
||||||
|
interpolation mode.
|
||||||
|
|
||||||
2007-05-21 Sebastian Dröge <slomo@circular-chaos.org>
|
2007-05-21 Sebastian Dröge <slomo@circular-chaos.org>
|
||||||
|
|
||||||
* libs/gst/controller/gstcontroller.c:
|
* libs/gst/controller/gstcontroller.c:
|
||||||
|
|
|
@ -190,32 +190,84 @@ interpolate_trigger_get (GstControlledProperty * prop, GstClockTime timestamp)
|
||||||
return (&prop->default_value);
|
return (&prop->default_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DEFINE_TRIGGER_GET(type) \
|
||||||
|
static gboolean \
|
||||||
|
interpolate_trigger_get_##type##_value_array (GstControlledProperty * prop, \
|
||||||
|
GstClockTime timestamp, GstValueArray * value_array) \
|
||||||
|
{ \
|
||||||
|
gint i; \
|
||||||
|
GstClockTime ts = timestamp; \
|
||||||
|
g##type *values = (g##type *) value_array->values; \
|
||||||
|
\
|
||||||
|
for(i = 0; i < value_array->nbsamples; i++) { \
|
||||||
|
*values = g_value_get_##type (interpolate_trigger_get (prop,ts)); \
|
||||||
|
ts += value_array->sample_interval; \
|
||||||
|
values++; \
|
||||||
|
} \
|
||||||
|
return (TRUE); \
|
||||||
|
}
|
||||||
|
|
||||||
|
DEFINE_TRIGGER_GET (int);
|
||||||
|
DEFINE_TRIGGER_GET (uint);
|
||||||
|
DEFINE_TRIGGER_GET (long);
|
||||||
|
|
||||||
|
DEFINE_TRIGGER_GET (ulong);
|
||||||
|
DEFINE_TRIGGER_GET (float);
|
||||||
|
DEFINE_TRIGGER_GET (double);
|
||||||
|
|
||||||
|
DEFINE_TRIGGER_GET (boolean);
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
interpolate_trigger_get_value_array (GstControlledProperty * prop,
|
interpolate_trigger_get_enum_value_array (GstControlledProperty * prop,
|
||||||
GstClockTime timestamp, GstValueArray * value_array)
|
GstClockTime timestamp, GstValueArray * value_array)
|
||||||
{
|
{
|
||||||
return (FALSE);
|
gint i;
|
||||||
|
GstClockTime ts = timestamp;
|
||||||
|
gint *values = (gint *) value_array->values;
|
||||||
|
|
||||||
|
for (i = 0; i < value_array->nbsamples; i++) {
|
||||||
|
*values = g_value_get_enum (interpolate_trigger_get (prop, ts));
|
||||||
|
ts += value_array->sample_interval;
|
||||||
|
values++;
|
||||||
|
}
|
||||||
|
return (TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
interpolate_trigger_get_string_value_array (GstControlledProperty * prop,
|
||||||
|
GstClockTime timestamp, GstValueArray * value_array)
|
||||||
|
{
|
||||||
|
gint i;
|
||||||
|
GstClockTime ts = timestamp;
|
||||||
|
gchar **values = (gchar **) value_array->values;
|
||||||
|
|
||||||
|
for (i = 0; i < value_array->nbsamples; i++) {
|
||||||
|
*values = (gchar *) g_value_get_string (interpolate_trigger_get (prop, ts));
|
||||||
|
ts += value_array->sample_interval;
|
||||||
|
values++;
|
||||||
|
}
|
||||||
|
return (TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static GstInterpolateMethod interpolate_trigger = {
|
static GstInterpolateMethod interpolate_trigger = {
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
interpolate_trigger_get_value_array,
|
interpolate_trigger_get_int_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_uint_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_long_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_ulong_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_float_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_double_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_boolean_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL,
|
interpolate_trigger_get_enum_value_array,
|
||||||
interpolate_trigger_get,
|
interpolate_trigger_get,
|
||||||
NULL
|
interpolate_trigger_get_string_value_array
|
||||||
};
|
};
|
||||||
|
|
||||||
/* linear interpolation */
|
/* linear interpolation */
|
||||||
|
|
Loading…
Reference in a new issue