6 event_loop (GstElement * pipe)
9 GstMessage *message = NULL;
10 gboolean running = TRUE;
12 bus = gst_element_get_bus (GST_ELEMENT (pipe));
15 message = gst_bus_poll (bus, GST_MESSAGE_ANY, -1);
17 g_assert (message != NULL);
19 switch (message->type) {
23 case GST_MESSAGE_WARNING:{
27 gst_message_parse_warning (message, &gerror, &debug);
28 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
29 g_error_free (gerror);
33 case GST_MESSAGE_ERROR:{
37 gst_message_parse_error (message, &gerror, &debug);
38 gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
39 g_error_free (gerror);
47 gst_message_unref (message);
49 gst_object_unref (bus);
53 main (int argc, char *argv[])
59 gst_init (&argc, &argv);
62 g_print ("usage: %s <mp3 file>\n", argv[0]);
67 gst_parse_launch ("filesrc name=my_filesrc ! mad ! osssink", &error);
69 fprintf (stderr, "Parse error: %s", error->message);
73 filesrc = gst_bin_get_by_name (GST_BIN (bin), "my_filesrc");
74 g_object_set (G_OBJECT (filesrc), "location", argv[1], NULL);
77 gst_element_set_state (bin, GST_STATE_PLAYING);
79 /* Run event loop listening for bus messages until EOS or ERROR */
83 gst_element_set_state (bin, GST_STATE_NULL);