start of a gst-launch helper based on extension
authorThomas Vander Stichele <thomas@apestaart.org>
Mon, 4 Feb 2002 19:57:35 +0000 (19:57 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Mon, 4 Feb 2002 19:57:35 +0000 (19:57 +0000)
Original commit message from CVS:
start of a gst-launch helper based on extension

tools/gst-launch-ext [new file with mode: 0755]

diff --git a/tools/gst-launch-ext b/tools/gst-launch-ext
new file mode 100755 (executable)
index 0000000..909438f
--- /dev/null
@@ -0,0 +1,48 @@
+#!/usr/bin/perl -w
+
+# launch a gst-launch pipeline for the supplied media file
+# use the extension to determine the gst-launch pipeline
+# make use of default output sinks
+
+### packages
+
+use File::Basename;
+
+### defaults
+my $VIDEOSINK = "xvideosink";
+my $AUDIOSINK = "osssink";
+my $GST_CVS_PATH = "~/gst/cvs";
+
+my %pipes = ( 
+  "mp3", "mad ! $AUDIOSINK",
+  "ogg", "vorbisdec ! $AUDIOSINK",
+  "mpg", "mpegdemux video_00! { queue ! mpeg2dec ! $VIDEOSINK } audio_00! { queue ! mad ! $AUDIOSINK }",
+  "avi", "avidemux video_00! { queue ! windec ! $VIDEOSINK }",
+  "vob", "mpegdemux video_00! { queue ! mpeg2dec ! $VIDEOSINK }",
+
+);
+
+sub extension
+{
+  my $path = shift;
+  my $ext = (fileparse ($path, '\..*'))[2];
+  $ext =~ s/^\.//;
+  return $ext;
+}
+
+### main
+
+my $file = shift @ARGV or die "Please give a file name !";
+
+my $ext = extension ($file);
+
+if ($pipe = $pipes{$ext})
+{
+  $command = "$GST_CVS_PATH/gstreamer/tools/gst-launch filesrc location=\"$file\" ! $pipe";
+  print "Running $command\n";
+  system ($command);
+}
+else
+{
+  print "No suitable pipe found for extension $ext.\n";
+}