From 99aa793b1c9ba7a4c3ec98dfabfa33d75c948c29 Mon Sep 17 00:00:00 2001 From: Erik Walthinsen Date: Thu, 26 Apr 2001 00:25:19 +0000 Subject: added mp1vid to CVS Original commit message from CVS: added mp1vid to CVS --- tests/mp1vid.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/mp1vid.c 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 + +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)); +} -- cgit v1.2.3