Added parallel pipeline syntex to the parser. ./gstreamer-launch filesrc location...
authorWim Taymans <wim.taymans@gmail.com>
Mon, 17 Dec 2001 14:18:03 +0000 (14:18 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Mon, 17 Dec 2001 14:18:03 +0000 (14:18 +0000)
Original commit message from CVS:
Added parallel pipeline syntex to the parser.

./gstreamer-launch filesrc location=/opt/data/AlienSong.mpg ! mpegdemux
name=foo video_00! { queue ! mpeg2dec ! sdlvideosink } foo.audio_00! { queue
! mad ! osssink }

should do the trick :)

gst/gstparse.c

index e5131e8..26ec647 100644 (file)
@@ -169,6 +169,21 @@ gst_parse_launch_cmdline (int argc, char *argv[], GstBin * parent, gst_parse_pri
          sinkpadname = NULL;
       }
 
+      if (srcpadname && (ptr = strchr (srcpadname, '.'))) {
+       gchar *element_name = g_strndup (arg, (ptr - srcpadname));
+       GstElement *new;
+
+       GST_DEBUG (0, "have pad for element %s\n", element_name);
+       new = gst_bin_get_by_name (parent, element_name);
+       if (!new) {
+          GST_DEBUG (0, "element %s does not exist! trying to continue\n", element_name);
+       }
+       else {
+          previous = new;
+         srcpadname = ptr + 1;
+       }
+      }
+      
       GST_DEBUG (0, "have srcpad %s, sinkpad %s\n", srcpadname, sinkpadname);
 
       g_slist_free (srcpads);
@@ -422,7 +437,7 @@ gst_parse_launch_cmdline (int argc, char *argv[], GstBin * parent, gst_parse_pri
 
       g_slist_free (srcpads);
       srcpads = NULL;
-
+      
       g_slist_free (sinkpads);
       sinkpads = NULL;