6 int main(int argc,char *argv[])
8 GstElement *disksrc, *audiosink, *queue, *queue2, *parse, *decode;
10 GstElement *thread, *thread2;
12 gst_init(&argc,&argv);
15 g_print("usage: %s <filename>\n", argv[0]);
19 /* create a new thread to hold the elements */
20 //thread = gst_thread_new("thread");
21 thread = gst_elementfactory_make("thread", "thread");
22 g_assert(thread != NULL);
23 thread2 = gst_elementfactory_make("thread", "thread2");
24 //thread2 = gst_thread_new("thread2");
25 g_assert(thread2 != NULL);
27 /* create a new bin to hold the elements */
28 bin = gst_bin_new("bin");
29 g_assert(bin != NULL);
31 /* create a disk reader */
32 disksrc = gst_elementfactory_make("disksrc", "disk_source");
33 g_assert(disksrc != NULL);
34 gtk_object_set(GTK_OBJECT(disksrc),"location", argv[1],NULL);
36 queue = gst_elementfactory_make("queue", "queue");
37 queue2 = gst_elementfactory_make("queue", "queue2");
39 /* and an audio sink */
40 audiosink = gst_elementfactory_make("audiosink", "play_audio");
41 g_assert(audiosink != NULL);
43 parse = gst_elementfactory_make("mp3parse", "parse");
44 decode = gst_elementfactory_make("mpg123", "decode");
46 /* add objects to the main bin */
47 gst_bin_add(GST_BIN(bin), disksrc);
48 gst_bin_add(GST_BIN(bin), queue);
50 gst_bin_add(GST_BIN(thread), parse);
51 gst_bin_add(GST_BIN(thread), decode);
52 gst_bin_add(GST_BIN(thread), queue2);
54 gst_bin_add(GST_BIN(thread2), audiosink);
56 gst_pad_connect(gst_element_get_pad(disksrc,"src"),
57 gst_element_get_pad(queue,"sink"));
59 gst_pad_connect(gst_element_get_pad(queue,"src"),
60 gst_element_get_pad(parse,"sink"));
61 gst_pad_connect(gst_element_get_pad(parse,"src"),
62 gst_element_get_pad(decode,"sink"));
63 gst_pad_connect(gst_element_get_pad(decode,"src"),
64 gst_element_get_pad(queue2,"sink"));
66 gst_pad_connect(gst_element_get_pad(queue2,"src"),
67 gst_element_get_pad(audiosink,"sink"));
69 gst_bin_add(GST_BIN(bin), thread);
70 gst_bin_add(GST_BIN(bin), thread2);
72 xmlSaveFile("xmlTest.gst", gst_xml_write(GST_ELEMENT(bin)));