summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Walthinsen <omega@temple-baptist.org>2001-04-26 00:25:19 +0000
committerErik Walthinsen <omega@temple-baptist.org>2001-04-26 00:25:19 +0000
commit99aa793b1c9ba7a4c3ec98dfabfa33d75c948c29 (patch)
tree9f2d65429c71fa51c11aa61ff52d00ae2adbdb1c
parent8ffd62de62df42f724e901cb830cd23e359b9ed7 (diff)
Original commit message from CVS: added mp1vid to CVS
-rw-r--r--tests/mp1vid.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/mp1vid.c b/tests/mp1vid.c
new file mode 100644
index 000000000..f507e5b3c
--- /dev/null
+++ b/tests/mp1vid.c
@@ -0,0 +1,51 @@
+#include <gst/gst.h>
+
+void new_pad(GstElement *parse,GstPad *pad,GstElement *pipeline) {
+ GstElement *audiodecode;
+ GstElement *audiosink;
+
+ if (!strncmp(gst_pad_get_name(pad), "audio_", 6)) {
+ fprintf(stderr,"have audio pad\n");
+
+ gst_element_set_state(pipeline,GST_STATE_PAUSED);
+
+ audiodecode = gst_elementfactory_make("mad","audiodecode");
+ gst_bin_add(GST_BIN(pipeline),audiodecode);
+ gst_pad_connect(pad,gst_element_get_pad(audiodecode,"sink"));
+
+ audiosink = gst_elementfactory_make("esdsink","audiosink");
+ gst_bin_add(GST_BIN(pipeline),audiosink);
+ gst_element_connect(audiodecode,"src",audiosink,"sink");
+
+ gst_element_set_state(pipeline,GST_STATE_PLAYING);
+
+ fprintf(stderr,"done dealing with new audio pad\n");
+ }
+}
+
+int main(int argc,char *argv[]) {
+ GstElement *pipeline, *src, *parse;
+ int i;
+
+ gst_init(&argc,&argv);
+
+ pipeline = gst_pipeline_new("pipeline");
+ src = gst_elementfactory_make("disksrc","src");
+ gtk_object_set(GTK_OBJECT(src),"location","/home/omega/media/AlienSong.mpg",NULL);
+ parse = gst_elementfactory_make("mpeg1parse","parse");
+
+ gtk_signal_connect(GTK_OBJECT(parse),"new_pad",
+ GTK_SIGNAL_FUNC(new_pad),pipeline);
+
+ gst_bin_add(GST_BIN(pipeline),src);
+ gst_bin_add(GST_BIN(pipeline),parse);
+
+ gst_element_connect(src,"src",parse,"sink");
+
+ gst_element_set_state(pipeline,GST_STATE_PLAYING);
+ gst_schedule_show(GST_ELEMENT_SCHED(pipeline));
+
+// for (i=0;i<10;i++)
+ while (1)
+ gst_bin_iterate(GST_BIN(pipeline));
+}