Fixed makefiles for docs
[platform/upstream/gstreamer.git] / tests / eos / case1.c
1 #include <gst/gst.h>
2
3 gboolean playing = TRUE;
4
5 static void
6 eos_signal_element (GstElement *element) 
7 {
8   g_print ("element eos received from \"%s\"\n", gst_element_get_name (element));
9 }
10
11 static void
12 eos_signal (GstElement *element) 
13 {
14   g_print ("eos received from \"%s\"\n", gst_element_get_name (element));
15
16   playing = FALSE;
17 }
18
19 int 
20 main(int argc,char *argv[]) 
21 {
22   GstBin *pipeline;
23   GstElement *src,*identity,*sink;
24
25   gst_init(&argc,&argv);
26
27   pipeline = GST_BIN(gst_pipeline_new("pipeline"));
28   g_return_val_if_fail(pipeline != NULL, 1);
29
30   src = gst_elementfactory_make("fakesrc","src");
31   gtk_object_set (GTK_OBJECT (src), "num_buffers", 1, NULL);
32   g_return_val_if_fail(src != NULL, 2);
33
34   identity = gst_elementfactory_make("identity","identity");
35   g_return_val_if_fail(identity != NULL, 3);
36   sink = gst_elementfactory_make("fakesink","sink");
37   g_return_val_if_fail(sink != NULL, 4);
38
39   gst_bin_add(pipeline,GST_ELEMENT(src));
40   gst_bin_add(pipeline,GST_ELEMENT(identity));
41   gst_bin_add(pipeline,GST_ELEMENT(sink));
42
43   gst_element_connect(src,"src",identity,"sink");
44   gst_element_connect(identity,"src",sink,"sink");
45
46   gtk_signal_connect (GTK_OBJECT (src), "eos", eos_signal_element, NULL);
47   gtk_signal_connect (GTK_OBJECT (pipeline), "eos", eos_signal, NULL);
48
49   gst_element_set_state(GST_ELEMENT(pipeline),GST_STATE_PLAYING);
50
51   while (playing)
52     gst_bin_iterate(pipeline);
53
54   exit (0);
55 }