summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2012-01-01 14:55:35 +0100
committerStefan Sauer <ensonic@users.sf.net>2012-01-01 16:08:01 +0100
commit44de1ed5f1dbc54058b71b4006a9bdae36f01ef5 (patch)
tree16f2459e9b73ff3a7ffd1b033404a5fcdca90173
parent9dea3e37b187c99d71b5dccbcc488b454bedfb6b (diff)
controller: cleanup the tests
-rw-r--r--tests/check/libs/controller.c413
1 files changed, 182 insertions, 231 deletions
diff --git a/tests/check/libs/controller.c b/tests/check/libs/controller.c
index 3c5297cb53..a37d8c96b6 100644
--- a/tests/check/libs/controller.c
+++ b/tests/check/libs/controller.c
@@ -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);
-
- 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));
+
+ /* 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);
-
- /* 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);
+ 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);
- gst_object_unref (csource);
+ /* 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);