mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
controller: cleanup the tests
This commit is contained in:
parent
9dea3e37b1
commit
44de1ed5f1
1 changed files with 180 additions and 229 deletions
|
@ -281,40 +281,41 @@ GST_START_TEST (controller_controlsource_empty2)
|
|||
|
||||
GST_END_TEST;
|
||||
|
||||
|
||||
/* test timed value handling without interpolation */
|
||||
GST_START_TEST (controller_interpolate_none)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
gdouble v;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
|
||||
|
||||
fail_unless (gst_timed_value_control_source_get_count (
|
||||
(GstTimedValueControlSource *) csource) == 0);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 1);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 2);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
|
||||
gst_object_unref (csource);
|
||||
/* check values on control source directly */
|
||||
fail_unless (gst_control_source_get_value (cs, 0 * GST_SECOND, &v));
|
||||
fail_unless_equals_float (v, 0.0);
|
||||
fail_unless (gst_control_source_get_value (cs, 1 * GST_SECOND, &v));
|
||||
fail_unless_equals_float (v, 0.0);
|
||||
fail_unless (gst_control_source_get_value (cs, 2 * GST_SECOND, &v));
|
||||
fail_unless_equals_float (v, 1.0);
|
||||
fail_unless (gst_control_source_get_value (cs, 3 * GST_SECOND, &v));
|
||||
fail_unless_equals_float (v, 1.0);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -323,7 +324,10 @@ GST_START_TEST (controller_interpolate_none)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
gst_object_sync_values (GST_OBJECT (elem), 3 * GST_SECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -333,30 +337,26 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolate_linear)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -366,6 +366,7 @@ GST_START_TEST (controller_interpolate_linear)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -375,34 +376,28 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolate_cubic)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "double",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "double", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 1 * GST_SECOND, 0.5);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 0.2);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 4 * GST_SECOND, 0.8);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 0.5));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.2));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, 0.8));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -419,6 +414,7 @@ GST_START_TEST (controller_interpolate_cubic)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 5 * GST_SECOND);
|
||||
fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 80.0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -428,30 +424,26 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolate_cubic_too_few_cp)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "double",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "double", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_CUBIC, NULL);
|
||||
|
||||
/* set 2 control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 0.4);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.4));
|
||||
|
||||
/* now pull in values for some timestamps and verify that it used linear
|
||||
* interpolation as we don't gave enough control points
|
||||
|
@ -463,6 +455,7 @@ GST_START_TEST (controller_interpolate_cubic_too_few_cp)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
|
||||
fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -472,30 +465,27 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_unset)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 1 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 0.5);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 0.5));
|
||||
|
||||
/* verify values */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -506,8 +496,7 @@ GST_START_TEST (controller_interpolation_unset)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
|
||||
|
||||
/* unset second */
|
||||
res = gst_timed_value_control_source_unset (cs, 1 * GST_SECOND);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 1 * GST_SECOND));
|
||||
|
||||
/* verify value again */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
|
||||
|
@ -516,13 +505,12 @@ GST_START_TEST (controller_interpolation_unset)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
|
||||
|
||||
/* unset all values, reset and try to unset again */
|
||||
fail_unless (gst_timed_value_control_source_unset (cs, 0 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_unset (cs, 2 * GST_SECOND));
|
||||
gst_timed_value_control_source_unset_all (cs);
|
||||
fail_if (gst_timed_value_control_source_unset (cs, 2 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 0 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
|
||||
gst_timed_value_control_source_unset_all (tvcs);
|
||||
fail_if (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -532,28 +520,26 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_unset_all)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 1 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
|
||||
|
||||
/* verify values */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -562,15 +548,14 @@ GST_START_TEST (controller_interpolation_unset_all)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
/* unset all */
|
||||
gst_timed_value_control_source_unset_all (cs);
|
||||
gst_timed_value_control_source_unset_all (tvcs);
|
||||
GST_TEST_OBJ (elem)->val_int = 0;
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* verify value again */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 1 * GST_SECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -580,9 +565,9 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_linear_value_array)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
gdouble *raw_values;
|
||||
GValue *g_values;
|
||||
|
||||
|
@ -590,26 +575,24 @@ GST_START_TEST (controller_interpolation_linear_value_array)
|
|||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 1.0));
|
||||
|
||||
/* now pull in raw-values for some timestamps */
|
||||
raw_values = g_new (gdouble, 3);
|
||||
|
||||
fail_unless (gst_control_source_get_value_array (GST_CONTROL_SOURCE (csource),
|
||||
0, GST_SECOND, 3, raw_values));
|
||||
fail_unless (gst_control_source_get_value_array (cs,
|
||||
0, GST_SECOND / 2, 3, raw_values));
|
||||
fail_unless_equals_float ((raw_values)[0], 0.0);
|
||||
fail_unless_equals_float ((raw_values)[1], 0.5);
|
||||
fail_unless_equals_float ((raw_values)[2], 1.0);
|
||||
|
@ -620,7 +603,7 @@ GST_START_TEST (controller_interpolation_linear_value_array)
|
|||
g_values = g_new0 (GValue, 3);
|
||||
|
||||
fail_unless (gst_object_get_value_array (GST_OBJECT (elem), "int",
|
||||
0, GST_SECOND, 3, g_values));
|
||||
0, GST_SECOND / 2, 3, g_values));
|
||||
fail_unless_equals_int (g_value_get_int (&g_values[0]), 0);
|
||||
fail_unless_equals_int (g_value_get_int (&g_values[1]), 50);
|
||||
fail_unless_equals_int (g_value_get_int (&g_values[2]), 100);
|
||||
|
@ -628,7 +611,6 @@ GST_START_TEST (controller_interpolation_linear_value_array)
|
|||
g_free (g_values);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -638,30 +620,26 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_linear_invalid_values)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "float",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "float", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 2.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 4 * GST_SECOND, -2.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 2.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, -2.0));
|
||||
|
||||
/* now pull in values for some timestamps and see if clipping works */
|
||||
/* 200.0 */
|
||||
|
@ -684,6 +662,7 @@ GST_START_TEST (controller_interpolation_linear_invalid_values)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 4 * GST_SECOND);
|
||||
fail_unless_equals_float (GST_TEST_OBJ (elem)->val_float, 0.0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -692,18 +671,19 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_linear_default_values)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
@ -716,11 +696,8 @@ GST_START_TEST (controller_interpolation_linear_default_values)
|
|||
*/
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 1 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 3 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 1 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 3 * GST_SECOND, 1.0));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
/* should give the value of the first control point for timestamps before it */
|
||||
|
@ -734,16 +711,12 @@ GST_START_TEST (controller_interpolation_linear_default_values)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
/* set control values */
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
|
||||
/* unset the old ones */
|
||||
res = gst_timed_value_control_source_unset (cs, 1 * GST_SECOND);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_unset (cs, 3 * GST_SECOND);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 1 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 3 * GST_SECOND));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
/* should now give our value for timestamp 0 */
|
||||
|
@ -755,7 +728,6 @@ GST_START_TEST (controller_interpolation_linear_default_values)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -765,44 +737,38 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolate_linear_disabled)
|
||||
{
|
||||
GstInterpolationControlSource *csource1, *csource2;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs1, *tvcs2;
|
||||
GstControlSource *cs1, *cs2;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource1 = gst_interpolation_control_source_new ();
|
||||
tvcs1 = (GstTimedValueControlSource *) csource1;
|
||||
cs1 = (GstControlSource *) csource1;
|
||||
|
||||
csource2 = gst_interpolation_control_source_new ();
|
||||
tvcs2 = (GstTimedValueControlSource *) csource2;
|
||||
cs2 = (GstControlSource *) csource2;
|
||||
|
||||
fail_unless (csource1 != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource1)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs1));
|
||||
fail_unless (csource2 != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "double",
|
||||
GST_CONTROL_SOURCE (csource2)));
|
||||
cs2));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource1, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
g_object_set (csource2, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource1;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource1);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs1, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs1, 2 * GST_SECOND, 1.0));
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource2;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.2);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 0.4);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource2);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs2, 0 * GST_SECOND, 0.2));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs2, 2 * GST_SECOND, 0.4));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -885,6 +851,8 @@ GST_START_TEST (controller_interpolate_linear_disabled)
|
|||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
fail_unless_equals_float (GST_TEST_OBJ (elem)->val_double, 40.0);
|
||||
|
||||
gst_object_unref (csource1);
|
||||
gst_object_unref (csource2);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -894,6 +862,8 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolation_set_from_list)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstTimedValue *tval;
|
||||
GstElement *elem;
|
||||
GSList *list = NULL;
|
||||
|
@ -903,10 +873,11 @@ GST_START_TEST (controller_interpolation_set_from_list)
|
|||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
@ -918,19 +889,16 @@ GST_START_TEST (controller_interpolation_set_from_list)
|
|||
|
||||
list = g_slist_append (list, tval);
|
||||
|
||||
fail_if (gst_timed_value_control_source_set_from_list (
|
||||
(GstTimedValueControlSource *) csource, list));
|
||||
fail_if (gst_timed_value_control_source_set_from_list (tvcs, list));
|
||||
|
||||
/* try again with a valid stamp, should work now */
|
||||
tval->timestamp = 0;
|
||||
fail_unless (gst_timed_value_control_source_set_from_list (
|
||||
(GstTimedValueControlSource *) csource, list));
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set_from_list (tvcs, list));
|
||||
|
||||
/* allocated GstTimedValue now belongs to the controller, but list not */
|
||||
g_free (tval);
|
||||
g_slist_free (list);
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -941,30 +909,26 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_interpolate_linear_before_ts0)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (cs, 4 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 4 * GST_SECOND, 0.0));
|
||||
|
||||
/* now pull in values for some timestamps after first control point */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 2 * GST_SECOND);
|
||||
|
@ -981,81 +945,75 @@ GST_START_TEST (controller_interpolate_linear_before_ts0)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
||||
/* test control-point handling in interpolation control source */
|
||||
GST_START_TEST (controller_interpolation_cp_count)
|
||||
/* test timed value counts */
|
||||
GST_START_TEST (controller_timed_value_count)
|
||||
{
|
||||
GstInterpolationControlSource *csource;
|
||||
GstTimedValueControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new interpolation control source */
|
||||
csource = gst_interpolation_control_source_new ();
|
||||
tvcs = (GstTimedValueControlSource *) csource;
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* set interpolation mode */
|
||||
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_NONE, NULL);
|
||||
|
||||
fail_unless (gst_timed_value_control_source_get_count (
|
||||
(GstTimedValueControlSource *) csource) == 0);
|
||||
fail_unless (gst_timed_value_control_source_get_count (tvcs) == 0);
|
||||
|
||||
/* set control values */
|
||||
cs = (GstTimedValueControlSource *) csource;
|
||||
res = gst_timed_value_control_source_set (cs, 0 * GST_SECOND, 0.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 1);
|
||||
res = gst_timed_value_control_source_set (cs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 2);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.0));
|
||||
fail_unless (gst_timed_value_control_source_get_count (tvcs) == 1);
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
fail_unless (gst_timed_value_control_source_get_count (tvcs) == 2);
|
||||
|
||||
/* now unset control values */
|
||||
res = gst_timed_value_control_source_unset (cs, 2 * GST_SECOND);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 1);
|
||||
|
||||
res = gst_timed_value_control_source_unset (cs, 0 * GST_SECOND);
|
||||
fail_unless (res, NULL);
|
||||
fail_unless (gst_timed_value_control_source_get_count (cs) == 0);
|
||||
/* unset control values */
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 2 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_get_count (tvcs) == 1);
|
||||
fail_unless (gst_timed_value_control_source_unset (tvcs, 0 * GST_SECOND));
|
||||
fail_unless (gst_timed_value_control_source_get_count (tvcs) == 0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
||||
|
||||
/* test lfo control source with sine waveform */
|
||||
GST_START_TEST (controller_lfo_sine)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SINE,
|
||||
"frequency", 1.0, "timeshift", (GstClockTime) 0,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
|
||||
|
@ -1082,6 +1040,7 @@ GST_START_TEST (controller_lfo_sine)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1091,25 +1050,24 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_sine_timeshift)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SINE,
|
||||
"frequency", 1.0, "timeshift", 250 * GST_MSECOND,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
gst_object_sync_values (GST_OBJECT (elem), 250 * GST_MSECOND);
|
||||
|
@ -1135,6 +1093,7 @@ GST_START_TEST (controller_lfo_sine_timeshift)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1144,24 +1103,23 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_square)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SQUARE,
|
||||
"frequency", 1.0, "timeshift", (GstClockTime) 0,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
@ -1188,6 +1146,7 @@ GST_START_TEST (controller_lfo_square)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1197,24 +1156,23 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_saw)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SAW,
|
||||
"frequency", 1.0, "timeshift", (GstClockTime) 0,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 100);
|
||||
|
@ -1241,6 +1199,7 @@ GST_START_TEST (controller_lfo_saw)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 25);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1250,24 +1209,23 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_rsaw)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW,
|
||||
"frequency", 1.0, "timeshift", (GstClockTime) 0,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
@ -1294,6 +1252,7 @@ GST_START_TEST (controller_lfo_rsaw)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 75);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1303,24 +1262,23 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_triangle)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* configure lfo */
|
||||
g_object_set (csource, "waveform", GST_LFO_WAVEFORM_TRIANGLE,
|
||||
"frequency", 1.0, "timeshift", (GstClockTime) 0,
|
||||
"amplitude", 0.5, "offset", 0.5, NULL);
|
||||
|
||||
gst_object_unref (csource);
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 50);
|
||||
|
@ -1347,6 +1305,7 @@ GST_START_TEST (controller_lfo_triangle)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1356,18 +1315,17 @@ GST_END_TEST;
|
|||
GST_START_TEST (controller_lfo_none)
|
||||
{
|
||||
GstLFOControlSource *csource;
|
||||
GstControlSource *cs;
|
||||
GstElement *elem;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
||||
/* new lfo control source */
|
||||
csource = gst_lfo_control_source_new ();
|
||||
cs = (GstControlSource *) csource;
|
||||
|
||||
fail_unless (csource != NULL);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int",
|
||||
GST_CONTROL_SOURCE (csource)));
|
||||
|
||||
gst_object_unref (csource);
|
||||
fail_unless (gst_object_set_control_source (GST_OBJECT (elem), "int", cs));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_MSECOND);
|
||||
|
@ -1395,6 +1353,7 @@ GST_START_TEST (controller_lfo_none)
|
|||
gst_object_sync_values (GST_OBJECT (elem), 1750 * GST_MSECOND);
|
||||
fail_unless_equals_int (GST_TEST_OBJ (elem)->val_int, 0);
|
||||
|
||||
gst_object_unref (csource);
|
||||
gst_object_unref (elem);
|
||||
}
|
||||
|
||||
|
@ -1407,7 +1366,6 @@ GST_START_TEST (controller_trigger_exact)
|
|||
GstControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
gdouble raw_val;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
@ -1423,11 +1381,8 @@ GST_START_TEST (controller_trigger_exact)
|
|||
fail_if (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
|
||||
|
||||
/* set control values */
|
||||
res = gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
fail_unless (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
|
||||
|
@ -1456,7 +1411,6 @@ GST_START_TEST (controller_trigger_tolerance)
|
|||
GstControlSource *cs;
|
||||
GstTimedValueControlSource *tvcs;
|
||||
GstElement *elem;
|
||||
gboolean res;
|
||||
gdouble raw_val;
|
||||
|
||||
elem = gst_element_factory_make ("testobj", NULL);
|
||||
|
@ -1475,11 +1429,8 @@ GST_START_TEST (controller_trigger_tolerance)
|
|||
fail_if (gst_control_source_get_value (cs, 0 * GST_SECOND, &raw_val));
|
||||
|
||||
/* set control values */
|
||||
res = gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5);
|
||||
fail_unless (res, NULL);
|
||||
res = gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0);
|
||||
fail_unless (res, NULL);
|
||||
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 0 * GST_SECOND, 0.5));
|
||||
fail_unless (gst_timed_value_control_source_set (tvcs, 2 * GST_SECOND, 1.0));
|
||||
|
||||
/* now pull in values for some timestamps */
|
||||
gst_object_sync_values (GST_OBJECT (elem), 0 * GST_SECOND);
|
||||
|
@ -1525,7 +1476,7 @@ gst_controller_suite (void)
|
|||
tcase_add_test (tc, controller_interpolate_linear_disabled);
|
||||
tcase_add_test (tc, controller_interpolation_set_from_list);
|
||||
tcase_add_test (tc, controller_interpolate_linear_before_ts0);
|
||||
tcase_add_test (tc, controller_interpolation_cp_count);
|
||||
tcase_add_test (tc, controller_timed_value_count);
|
||||
tcase_add_test (tc, controller_lfo_sine);
|
||||
tcase_add_test (tc, controller_lfo_sine_timeshift);
|
||||
tcase_add_test (tc, controller_lfo_square);
|
||||
|
|
Loading…
Reference in a new issue