static gboolean my_bus_callback (GstBus *bus, GstMessage *msg, gpointer data) { GMainLoop *loop = (GMainLoop *) data; switch (GST_MESSAGE_TYPE (msg)) { case GST_MESSAGE_EOS: g_printf ("End-of-stream\n"); g_main_loop_quit (loop); break; case GST_MESSAGE_ERROR: { gchar *debug; GError *err; gst_message_parse_error (msg, &err, &debug); g_free (debug); g_printf ("Error: %s\n", err->message); g_error_free (err); g_main_loop_quit (loop); break; } default: printf("hm?%d\n", GST_MESSAGE_TYPE (msg)); break; } return TRUE; }