summaryrefslogtreecommitdiff
path: root/tests/sched
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2001-11-26 01:48:19 +0000
committerAndy Wingo <wingo@pobox.com>2001-11-26 01:48:19 +0000
commitd11dd78e24e3454f8ffc05c91d1ac2ecab9a1e7d (patch)
tree7cb1cd9c37515e685f426083cd0644d330467077 /tests/sched
parenta2a822490752bdbff677e07d71d24b5e9962a3e3 (diff)
make the test case clearer and better commented. i now think that this is a cothreads problem.
Original commit message from CVS: make the test case clearer and better commented. i now think that this is a cothreads problem.
Diffstat (limited to 'tests/sched')
-rw-r--r--tests/sched/dynamic-pipeline.c29
1 files changed, 12 insertions, 17 deletions
diff --git a/tests/sched/dynamic-pipeline.c b/tests/sched/dynamic-pipeline.c
index 6308df8b3..5494769fc 100644
--- a/tests/sched/dynamic-pipeline.c
+++ b/tests/sched/dynamic-pipeline.c
@@ -1,13 +1,5 @@
#include <gst/gst.h>
-gboolean idle_func (gpointer data);
-
-gboolean
-idle_func (gpointer data)
-{
- return gst_bin_iterate ((GstBin*) (data));
-}
-
int main (int argc, char *argv[])
{
GstElement *osssink, *pipe1, *pipe2, *bin, *filesrc, *mad, *fakesink;
@@ -29,34 +21,37 @@ int main (int argc, char *argv[])
g_object_set(G_OBJECT(filesrc), "location", argv[1], NULL);
+ // make the first pipeline
gst_bin_add (GST_BIN(pipe1), filesrc);
gst_bin_add (GST_BIN(pipe1), fakesink);
gst_element_connect(filesrc, "src", fakesink, "sink");
+ // initialize cothreads
gst_element_set_state(pipe1, GST_STATE_PLAYING);
- gst_bin_iterate(GST_BIN(pipe1));
gst_element_set_state(pipe1, GST_STATE_READY);
+ // destroy the fakesink, but keep filesrc (its state is GST_STATE_READY)
gst_element_disconnect(filesrc, "src", fakesink, "sink");
gst_object_ref(GST_OBJECT(filesrc));
gst_bin_remove(GST_BIN(pipe1), filesrc);
gst_bin_remove(GST_BIN(pipe1), fakesink);
- gst_bin_add (GST_BIN(pipe2), filesrc);
+ // make a new pipeline
gst_bin_add (GST_BIN(pipe2), mad);
- gst_element_connect(filesrc, "src", mad, "sink");
gst_bin_add (GST_BIN(pipe2), osssink);
gst_element_connect(mad, "src", osssink, "sink");
+ // change the new pipeline's state to READY (is this necessary?)
+ gst_element_set_state(pipe2, GST_STATE_READY);
+ gst_bin_add (GST_BIN(pipe2), filesrc);
+ gst_element_connect(filesrc, "src", mad, "sink");
+
+ // show the pipeline state
xmlDocDump(stdout, gst_xml_write(pipe2));
+ // try to iterate the pipeline
gst_element_set_state(pipe2, GST_STATE_PLAYING);
- g_idle_add(idle_func, pipe2);
-#ifdef USE_GLIB2
- g_main_loop_run (g_main_loop_new (NULL, FALSE));
-#else
- gst_main();
-#endif
+ gst_bin_iterate(GST_BIN(pipe2));
gst_element_set_state(pipe2, GST_STATE_NULL);
return 0;