GstElement *pitch;
GstElement *sink;
GstElement *pipeline;
- GstController *ctl;
GstInterpolationControlSource *csource;
- GValue val = { 0, };
+ GstTimedValueControlSource *cs;
if (argc != 2) {
g_printerr ("Usage: %s <audiosink>\n", argv[0]);
gst_element_link_many (audiotestsrc, audioconvert1, pitch, audioconvert2,
sink, NULL);
- if (!(ctl = gst_controller_new (G_OBJECT (pitch), "pitch", NULL))) {
- g_print ("can't control pitch element\n");
- return -1;
- }
-
+ /* set up a controller */
csource = gst_interpolation_control_source_new ();
g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
- gst_controller_set_control_source (ctl, "pitch",
- GST_CONTROL_SOURCE (csource));
-
-
- g_value_init (&val, G_TYPE_FLOAT);
+ gst_object_set_control_source (pitch, "pitch", GST_CONTROL_SOURCE (csource));
+ cs = (GstTimedValueControlSource *) csource;
for (i = 0; i < 100; ++i) {
if (i % 2)
- g_value_set_float (&val, 0.5);
+ gst_timed_value_control_source_set (cs, i * GST_SECOND, 0.5);
else
- g_value_set_float (&val, 1.5);
-
- gst_timed_value_control_source_set ((GstTimedValueControlSource *) csource,
- i * GST_SECOND, &val);
+ gst_timed_value_control_source_set (cs, i * GST_SECOND, 1.5);
}
- g_value_unset (&val);
-
gst_element_set_state (pipeline, GST_STATE_PLAYING);
g_print ("Running\n");
g_main_loop_run (loop);
- /* set up a controller */
-
/* clean up nicely */
+ gst_object_unref (csource);
g_print ("Returned, stopping playback\n");
gst_element_set_state (pipeline, GST_STATE_NULL);
g_print ("Deleting pipeline\n");
gst_object_unref (GST_OBJECT (pipeline));
- g_object_unref (csource);
- g_object_unref (ctl);
-
return 0;
}