From 3de9788e32f96d6b910c3e0674c71b3e4ffd0a27 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Sun, 6 Jan 2002 19:00:14 +0000 Subject: [PATCH] Fix the helloworld example. Original commit message from CVS: Fix the helloworld example. --- examples/helloworld/helloworld.c | 55 ++++------------------ tests/old/examples/helloworld/helloworld.c | 55 ++++------------------ 2 files changed, 18 insertions(+), 92 deletions(-) diff --git a/examples/helloworld/helloworld.c b/examples/helloworld/helloworld.c index c1ae980573..3802bcd774 100644 --- a/examples/helloworld/helloworld.c +++ b/examples/helloworld/helloworld.c @@ -1,24 +1,14 @@ #include #include -gboolean playing; - -/* eos will be called when the src element has an end of stream */ -void eos(GstElement *element) -{ - g_print("have eos, quitting\n"); - - playing = FALSE; -} - int main(int argc,char *argv[]) { - GstElement *bin, *filesrc, *parse, *decoder, *downmix, *mulaw, *mulawdec, *osssink; + GstElement *bin, *filesrc, *decoder, *osssink; gst_init(&argc,&argv); if (argc != 2) { - g_print("usage: %s \n", argv[0]); + g_print("usage: %s \n", argv[0]); exit(-1); } @@ -28,62 +18,35 @@ int main(int argc,char *argv[]) /* create a disk reader */ filesrc = gst_elementfactory_make("filesrc", "disk_source"); g_object_set(G_OBJECT(filesrc),"location", argv[1],NULL); - g_signal_connect(G_OBJECT(filesrc),"eos", - G_CALLBACK(eos),NULL); - /* now it's time to get the parser */ - parse = gst_elementfactory_make("mp3parse","parse"); - decoder = gst_elementfactory_make("mpg123","decoder"); - downmix = gst_elementfactory_make("stereo2mono","stereo2mono"); - mulaw = gst_elementfactory_make("mulawencode","mulaw"); - mulawdec = gst_elementfactory_make("mulawdecode","mulawdec"); + /* now it's time to get the decoder */ + decoder = gst_elementfactory_make("mad","parse"); + if (!decoder) { + g_print ("could not find plugin \"mad\""); + return -1; + } /* and an audio sink */ osssink = gst_elementfactory_make("osssink", "play_audio"); /* add objects to the main pipeline */ gst_bin_add(GST_BIN(bin), filesrc); - gst_bin_add(GST_BIN(bin), parse); gst_bin_add(GST_BIN(bin), decoder); - gst_bin_add(GST_BIN(bin), downmix); - gst_bin_add(GST_BIN(bin), mulaw); - gst_bin_add(GST_BIN(bin), mulawdec); gst_bin_add(GST_BIN(bin), osssink); /* connect src to sink */ gst_pad_connect(gst_element_get_pad(filesrc,"src"), - gst_element_get_pad(parse,"sink")); - gst_pad_connect(gst_element_get_pad(parse,"src"), gst_element_get_pad(decoder,"sink")); gst_pad_connect(gst_element_get_pad(decoder,"src"), - gst_element_get_pad(downmix,"sink")); - gst_pad_connect(gst_element_get_pad(downmix,"src"), - gst_element_get_pad(mulaw,"sink")); - gst_pad_connect(gst_element_get_pad(mulaw,"src"), - gst_element_get_pad(mulawdec,"sink")); - gst_pad_connect(gst_element_get_pad(mulawdec,"src"), gst_element_get_pad(osssink,"sink")); /* start playing */ gst_element_set_state(bin, GST_STATE_PLAYING); - playing = TRUE; - - while (playing) { - gst_bin_iterate(GST_BIN(bin)); - } + while (gst_bin_iterate(GST_BIN(bin))); /* stop the bin */ gst_element_set_state(bin, GST_STATE_NULL); - gst_object_destroy(GST_OBJECT(osssink)); - gst_object_destroy(GST_OBJECT(parse)); - gst_object_destroy(GST_OBJECT(decoder)); - gst_object_destroy(GST_OBJECT(downmix)); - gst_object_destroy(GST_OBJECT(mulaw)); - gst_object_destroy(GST_OBJECT(mulawdec)); - gst_object_destroy(GST_OBJECT(filesrc)); - gst_object_destroy(GST_OBJECT(bin)); - exit(0); } diff --git a/tests/old/examples/helloworld/helloworld.c b/tests/old/examples/helloworld/helloworld.c index c1ae980573..3802bcd774 100644 --- a/tests/old/examples/helloworld/helloworld.c +++ b/tests/old/examples/helloworld/helloworld.c @@ -1,24 +1,14 @@ #include #include -gboolean playing; - -/* eos will be called when the src element has an end of stream */ -void eos(GstElement *element) -{ - g_print("have eos, quitting\n"); - - playing = FALSE; -} - int main(int argc,char *argv[]) { - GstElement *bin, *filesrc, *parse, *decoder, *downmix, *mulaw, *mulawdec, *osssink; + GstElement *bin, *filesrc, *decoder, *osssink; gst_init(&argc,&argv); if (argc != 2) { - g_print("usage: %s \n", argv[0]); + g_print("usage: %s \n", argv[0]); exit(-1); } @@ -28,62 +18,35 @@ int main(int argc,char *argv[]) /* create a disk reader */ filesrc = gst_elementfactory_make("filesrc", "disk_source"); g_object_set(G_OBJECT(filesrc),"location", argv[1],NULL); - g_signal_connect(G_OBJECT(filesrc),"eos", - G_CALLBACK(eos),NULL); - /* now it's time to get the parser */ - parse = gst_elementfactory_make("mp3parse","parse"); - decoder = gst_elementfactory_make("mpg123","decoder"); - downmix = gst_elementfactory_make("stereo2mono","stereo2mono"); - mulaw = gst_elementfactory_make("mulawencode","mulaw"); - mulawdec = gst_elementfactory_make("mulawdecode","mulawdec"); + /* now it's time to get the decoder */ + decoder = gst_elementfactory_make("mad","parse"); + if (!decoder) { + g_print ("could not find plugin \"mad\""); + return -1; + } /* and an audio sink */ osssink = gst_elementfactory_make("osssink", "play_audio"); /* add objects to the main pipeline */ gst_bin_add(GST_BIN(bin), filesrc); - gst_bin_add(GST_BIN(bin), parse); gst_bin_add(GST_BIN(bin), decoder); - gst_bin_add(GST_BIN(bin), downmix); - gst_bin_add(GST_BIN(bin), mulaw); - gst_bin_add(GST_BIN(bin), mulawdec); gst_bin_add(GST_BIN(bin), osssink); /* connect src to sink */ gst_pad_connect(gst_element_get_pad(filesrc,"src"), - gst_element_get_pad(parse,"sink")); - gst_pad_connect(gst_element_get_pad(parse,"src"), gst_element_get_pad(decoder,"sink")); gst_pad_connect(gst_element_get_pad(decoder,"src"), - gst_element_get_pad(downmix,"sink")); - gst_pad_connect(gst_element_get_pad(downmix,"src"), - gst_element_get_pad(mulaw,"sink")); - gst_pad_connect(gst_element_get_pad(mulaw,"src"), - gst_element_get_pad(mulawdec,"sink")); - gst_pad_connect(gst_element_get_pad(mulawdec,"src"), gst_element_get_pad(osssink,"sink")); /* start playing */ gst_element_set_state(bin, GST_STATE_PLAYING); - playing = TRUE; - - while (playing) { - gst_bin_iterate(GST_BIN(bin)); - } + while (gst_bin_iterate(GST_BIN(bin))); /* stop the bin */ gst_element_set_state(bin, GST_STATE_NULL); - gst_object_destroy(GST_OBJECT(osssink)); - gst_object_destroy(GST_OBJECT(parse)); - gst_object_destroy(GST_OBJECT(decoder)); - gst_object_destroy(GST_OBJECT(downmix)); - gst_object_destroy(GST_OBJECT(mulaw)); - gst_object_destroy(GST_OBJECT(mulawdec)); - gst_object_destroy(GST_OBJECT(filesrc)); - gst_object_destroy(GST_OBJECT(bin)); - exit(0); }