summaryrefslogtreecommitdiffstats
path: root/ext/smoothwave/demo-osssrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/smoothwave/demo-osssrc.c')
-rw-r--r--ext/smoothwave/demo-osssrc.c35
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 ();