diff options
Diffstat (limited to 'ext/smoothwave/demo-osssrc.c')
-rw-r--r-- | ext/smoothwave/demo-osssrc.c | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/ext/smoothwave/demo-osssrc.c b/ext/smoothwave/demo-osssrc.c index c39bc72c..6e5d2760 100644 --- a/ext/smoothwave/demo-osssrc.c +++ b/ext/smoothwave/demo-osssrc.c @@ -11,12 +11,9 @@ int main (int argc, char *argv[]) { GstElement *bin; - GstElementFactory *srcfactory; GstElement *src; - GstElementFactory *wavefactory; GstElement *wave; - GtkWidget *wave_widget; - GtkWidget *appwindow; + GstElement *ximage; gst_init (&argc, &argv); gst_plugin_load ("libsmoothwave.so"); @@ -24,31 +21,19 @@ main (int argc, char *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_make ("sinesrc", "src"); + wave = gst_element_factory_make ("smoothwave", "wave"); + ximage = gst_element_factory_make ("ximagesink", "sink"); + g_return_val_if_fail (src != NULL, -1); + g_return_val_if_fail (wave != NULL, -1); + g_return_val_if_fail (ximage != 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_many (GST_BIN (bin), src, wave, ximage, NULL); + g_return_val_if_fail (gst_element_link_many (src, wave, ximage, + NULL) != FALSE, -1); - 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 (); |