diff options
author | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-26 00:25:19 +0000 |
---|---|---|
committer | Erik Walthinsen <omega@temple-baptist.org> | 2001-04-26 00:25:19 +0000 |
commit | 99aa793b1c9ba7a4c3ec98dfabfa33d75c948c29 (patch) | |
tree | 9f2d65429c71fa51c11aa61ff52d00ae2adbdb1c | |
parent | 8ffd62de62df42f724e901cb830cd23e359b9ed7 (diff) |
added mp1vid to CVSBRANCH-INCSCHED1-200104251-FREEZE
Original commit message from CVS:
added mp1vid to CVS
-rw-r--r-- | tests/mp1vid.c | 51 |
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)); +} |