summaryrefslogtreecommitdiffstats
path: root/examples/seeking/chained.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/seeking/chained.c')
-rw-r--r--examples/seeking/chained.c107
1 files changed, 0 insertions, 107 deletions
diff --git a/examples/seeking/chained.c b/examples/seeking/chained.c
deleted file mode 100644
index bf23e05a..00000000
--- a/examples/seeking/chained.c
+++ /dev/null
@@ -1,107 +0,0 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-#include <stdlib.h>
-#include <gst/gst.h>
-#include <string.h>
-
-static GstElement *bin;
-
-static void
-unlinked (GstPad * pad, GstPad * peerpad, GstElement * pipeline)
-{
- gst_element_set_state (pipeline, GST_STATE_PAUSED);
- gst_bin_remove (GST_BIN (pipeline), bin);
- gst_element_set_state (bin, GST_STATE_READY);
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
-}
-
-static void
-new_pad (GstElement * elem, GstPad * newpad, GstElement * pipeline)
-{
- GstScheduler *sched;
- GstClock *clock;
-
- g_print ("new pad %s\n", gst_pad_get_name (newpad));
-
- gst_element_set_state (pipeline, GST_STATE_PAUSED);
- gst_bin_add (GST_BIN (pipeline), bin);
-
- sched = gst_element_get_scheduler (GST_ELEMENT (pipeline));
- clock = gst_scheduler_get_clock (sched);
- gst_scheduler_set_clock (sched, clock);
-
- gst_pad_link (newpad, gst_element_get_pad (bin, "sink"));
-
- g_signal_connect (G_OBJECT (newpad), "unlinked", G_CALLBACK (unlinked),
- pipeline);
-
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
-}
-
-int
-main (int argc, char **argv)
-{
- GstElement *pipeline;
- GstElement *filesrc;
- GstElement *oggdemux;
- GstElement *vorbisdec;
- GstElement *audioconvert;
- GstElement *audiosink;
-
- gst_init (&argc, &argv);
-
- if (argc < 2) {
- g_print ("usage: %s <oggfile>\n", argv[0]);
- return (-1);
- }
-
- pipeline = gst_pipeline_new ("pipeline");
-
- filesrc = gst_element_factory_make ("filesrc", "filesrc");
- g_assert (filesrc);
- g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
-
- oggdemux = gst_element_factory_make ("oggdemux", "oggdemux");
- g_assert (oggdemux);
-
- gst_bin_add (GST_BIN (pipeline), filesrc);
- gst_bin_add (GST_BIN (pipeline), oggdemux);
-
- gst_element_link_pads (filesrc, "src", oggdemux, "sink");
-
- g_signal_connect (G_OBJECT (oggdemux), "new_pad", G_CALLBACK (new_pad),
- pipeline);
-
- bin = gst_bin_new ("bin");
- vorbisdec = gst_element_factory_make ("vorbisdec", "vorbisdec");
- g_assert (vorbisdec);
- audioconvert = gst_element_factory_make ("audioconvert", "audioconvert");
- g_assert (audioconvert);
- audiosink = gst_element_factory_make (DEFAULT_AUDIOSINK, DEFAULT_AUDIOSINK);
- g_assert (audiosink);
- gst_bin_add (GST_BIN (bin), vorbisdec);
- gst_bin_add (GST_BIN (bin), audioconvert);
- gst_bin_add (GST_BIN (bin), audiosink);
-
- gst_element_link_pads (vorbisdec, "src", audioconvert, "sink");
- gst_element_link_pads (audioconvert, "src", audiosink, "sink");
-
- gst_element_add_ghost_pad (bin, gst_element_get_pad (vorbisdec, "sink"),
- "sink");
-
- g_object_ref (G_OBJECT (bin));
-
- g_signal_connect (pipeline, "deep_notify",
- G_CALLBACK (gst_element_default_deep_notify), NULL);
-
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
-
- while (gst_bin_iterate (GST_BIN (pipeline)))
- /* nop */ ;
-
- /* stop probe */
- gst_element_set_state (pipeline, GST_STATE_NULL);
-
- return 0;
-}