#include #include extern gboolean _gst_plugin_spew; gboolean idle_func (gpointer data); GtkWidget *drawingarea; int main (int argc, char *argv[]) { GstElement *bin; GstElementFactory *srcfactory; GstElement *src; GstElementFactory *wavefactory; GstElement *wave; GtkWidget *wave_widget; GtkWidget *appwindow; gst_init (&argc, &argv); gst_plugin_load ("libsmoothwave.so"); gtk_init (&argc, &argv); bin = gst_pipeline_new ("bin"); srcfactory = gst_element_factory_find ("sinesrc"); g_return_val_if_fail (srcfactory != NULL, -1); wavefactory = gst_element_factory_find ("smoothwave"); g_return_val_if_fail (wavefactory != NULL, -1); src = gst_element_factory_create (srcfactory, "src"); //g_object_set(G_OBJECT(src),"bytes_per_read",(gulong)2048,NULL); wave = gst_element_factory_create (wavefactory, "wave"); g_object_set (G_OBJECT (wave), "width", 256, "height", 100, NULL); gst_bin_add (GST_BIN (bin), GST_ELEMENT (src)); gst_bin_add (GST_BIN (bin), GST_ELEMENT (wave)); gst_pad_link (gst_element_get_pad (src, "src"), gst_element_get_pad (wave, "sink")); appwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_object_get (G_OBJECT (wave), "widget", &wave_widget, NULL); gtk_container_add (GTK_CONTAINER (appwindow), wave_widget); gtk_widget_show_all (appwindow); gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY); gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING); g_idle_add (idle_func, bin); gtk_main (); return 0; } gboolean idle_func (gpointer data) { gst_bin_iterate (GST_BIN (data)); return TRUE; }