📄 controller.c
字号:
csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); /* set amplitude and offset values */ g_value_init (&, G_TYPE_ULONG); g_value_init (&off, G_TYPE_ULONG); g_value_set_ulong (&, 100); g_value_set_ulong (&off, 100); /* set waveform mode */ g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SINE, "frequency", 1.0, "timeshift", 250 * GST_MSECOND, "amplitude", &, "offset", &off, NULL); g_object_unref (G_OBJECT (csource));/* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 2000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count); g_object_unref (ctrl); gst_object_unref (elem);}GST_END_TEST;/* test lfo control source with square waveform */GST_START_TEST (controller_lfo_square){ GstController *ctrl; GstLFOControlSource *csource; GstElement *elem; GValue amp = { 0, } , off = { 0,}; gst_controller_init (NULL, NULL); elem = gst_element_factory_make ("testmonosource", "test_source"); /* that property should exist and should be controllable */ ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL); fail_unless (ctrl != NULL, NULL); /* Get interpolation control source */ csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); /* set amplitude and offset values */ g_value_init (&, G_TYPE_ULONG); g_value_init (&off, G_TYPE_ULONG); g_value_set_ulong (&, 100); g_value_set_ulong (&off, 100); /* set waveform mode */ g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SQUARE, "frequency", 1.0, "timeshift", (GstClockTime) 0, "amplitude", &, "offset", &off, NULL); g_object_unref (G_OBJECT (csource)); /* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 2000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count); g_object_unref (ctrl); gst_object_unref (elem);}GST_END_TEST;/* test lfo control source with saw waveform */GST_START_TEST (controller_lfo_saw){ GstController *ctrl; GstLFOControlSource *csource; GstElement *elem; GValue amp = { 0, } , off = { 0,}; gst_controller_init (NULL, NULL); elem = gst_element_factory_make ("testmonosource", "test_source"); /* that property should exist and should be controllable */ ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL); fail_unless (ctrl != NULL, NULL); /* Get interpolation control source */ csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); /* set amplitude and offset values */ g_value_init (&, G_TYPE_ULONG); g_value_init (&off, G_TYPE_ULONG); g_value_set_ulong (&, 100); g_value_set_ulong (&off, 100); /* set waveform mode */ g_object_set (csource, "waveform", GST_LFO_WAVEFORM_SAW, "frequency", 1.0, "timeshift", (GstClockTime) 0, "amplitude", &, "offset", &off, NULL); g_object_unref (G_OBJECT (csource)); /* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; gst_controller_sync_values (ctrl, 2000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count); g_object_unref (ctrl); gst_object_unref (elem);}GST_END_TEST;/* test lfo control source with reverse saw waveform */GST_START_TEST (controller_lfo_rsaw){ GstController *ctrl; GstLFOControlSource *csource; GstElement *elem; GValue amp = { 0, } , off = { 0,}; gst_controller_init (NULL, NULL); elem = gst_element_factory_make ("testmonosource", "test_source"); /* that property should exist and should be controllable */ ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL); fail_unless (ctrl != NULL, NULL); /* Get interpolation control source */ csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); /* set amplitude and offset values */ g_value_init (&, G_TYPE_ULONG); g_value_init (&off, G_TYPE_ULONG); g_value_set_ulong (&, 100); g_value_set_ulong (&off, 100); /* set waveform mode */ g_object_set (csource, "waveform", GST_LFO_WAVEFORM_REVERSE_SAW, "frequency", 1.0, "timeshift", (GstClockTime) 0, "amplitude", &, "offset", &off, NULL); g_object_unref (G_OBJECT (csource)); /* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; gst_controller_sync_values (ctrl, 2000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 50);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 150);; GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count); g_object_unref (ctrl); gst_object_unref (elem);}GST_END_TEST;/* test lfo control source with saw waveform */GST_START_TEST (controller_lfo_triangle){ GstController *ctrl; GstLFOControlSource *csource; GstElement *elem; GValue amp = { 0, } , off = { 0,}; gst_controller_init (NULL, NULL); elem = gst_element_factory_make ("testmonosource", "test_source"); /* that property should exist and should be controllable */ ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL); fail_unless (ctrl != NULL, NULL); /* Get interpolation control source */ csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); /* set amplitude and offset values */ g_value_init (&, G_TYPE_ULONG); g_value_init (&off, G_TYPE_ULONG); g_value_set_ulong (&, 100); g_value_set_ulong (&off, 100); /* set waveform mode */ g_object_set (csource, "waveform", GST_LFO_WAVEFORM_TRIANGLE, "frequency", 1.0, "timeshift", (GstClockTime) 0, "amplitude", &, "offset", &off, NULL); g_object_unref (G_OBJECT (csource)); /* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 2000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 200);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 100);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; GST_INFO ("controller->ref_count=%d", G_OBJECT (ctrl)->ref_count); g_object_unref (ctrl); gst_object_unref (elem);}GST_END_TEST;/* test lfo control source with nothing set */GST_START_TEST (controller_lfo_none){ GstController *ctrl; GstLFOControlSource *csource; GstElement *elem; gst_controller_init (NULL, NULL); elem = gst_element_factory_make ("testmonosource", "test_source"); /* that property should exist and should be controllable */ ctrl = gst_controller_new (G_OBJECT (elem), "ulong", NULL); fail_unless (ctrl != NULL, NULL); /* Get interpolation control source */ csource = gst_lfo_control_source_new (); fail_unless (csource != NULL); fail_unless (gst_controller_set_control_source (ctrl, "ulong", GST_CONTROL_SOURCE (csource))); g_object_unref (G_OBJECT (csource)); /* now pull in values for some timestamps */ gst_controller_sync_values (ctrl, 0 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 750 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1000 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1250 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1500 * GST_MSECOND); fail_unless_equals_int (GST_TEST_MONO_SOURCE (elem)->val_ulong, 0);; gst_controller_sync_values (ctrl, 1750 * GST_MSECOND); fail_unless_equals_int
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -