gst-launch-ext
authorThomas Vander Stichele <thomas@apestaart.org>
Mon, 4 Feb 2002 20:57:13 +0000 (20:57 +0000)
committerThomas Vander Stichele <thomas@apestaart.org>
Mon, 4 Feb 2002 20:57:13 +0000 (20:57 +0000)
Original commit message from CVS:
gst-launch-ext

configure.ac
gst-plugins.spec.in
tools/gst-launch-ext

index a31db44..d5e947f 100644 (file)
@@ -844,6 +844,7 @@ gst-libs/gst/resample/Makefile
 gst-libs/gst/riff/Makefile
 examples/capsfilter/Makefile
 examples/Makefile
+tools/Makefile
 )
 
 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
index 7900e9f..433b1da 100644 (file)
@@ -17,7 +17,7 @@ Prefix: %prefix
 Requires: libxml2 >= 2.4.0
 Requires: gstreamer >= %{ver}
 BuildRequires: nasm => 0.90
-BuildRequires: gstreamer-devel > 0.3.0 
+BuildRequires: gstreamer-devel >= %{ver} 
 
 %description
 GStreamer is a streaming-media framework, based on graphs of filters which
@@ -30,7 +30,7 @@ plugins.
 %files
 %defattr(-, root, root)
 %doc AUTHORS COPYING README  
-
+%{_bindir}/gst-launch-ext
 %prep
 %setup
 %build
index 909438f..6c5cd89 100755 (executable)
@@ -8,19 +8,7 @@
 
 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
 {
@@ -30,15 +18,66 @@ sub extension
   return $ext;
 }
 
+sub read_config
+{
+  my $config_file = "~/.gst";
+  if (-e $config_file)
+  {
+    open CONFIG, $config_file;
+    while (<CONFIG>)
+    {
+      chomp;
+      s/#.*//;
+      s/\s+$//;
+      next unless length;
+      my ($var, $value) = split (/\s*=\s*/, $_, 2);
+      $cfg{$var} = $value;
+    }
+    if (!($cfg{AUDIOSINK}))
+    {
+      print "Please add an AUDIOSINK to $config_file !\n";
+    }
+    if (!($cfg{VIDEOSINK}))
+    {
+      print "Please add a VIDEOSINK to $config_file !\n";
+    }
+  }
+  else
+  {
+    print "No configuration file $config_file found.  You might want to create one.\n";
+    $cfg{AUDIOSINK} = "osssink";
+    $cfg{VIDEOSINK} = "xvideosink";
+    $cfg{CVS_PATH} = "~/gst/cvs";
+  }
+
+  # check for gst-launch in cvs dir
+  $GST_LAUNCH=$cfg{CVS_PATH}."/gstreamer/tools/gst-launch";
+  if (! -x $GST_LAUNCH)
+  {
+    # let's hope it's installed ...
+    $GST_LAUNCH="gst-launch";
+  }
+}
+
 ### main
 
+read_config ();
+
+my %pipes = ( 
+  "mp3", "mad ! $cfg{AUDIOSINK}",
+  "ogg", "vorbisdec ! $cfg{AUDIOSINK}",
+  "mpg", "mpegdemux video_00! { queue ! mpeg2dec ! $cfg{VIDEOSINK} } audio_00! { queue ! mad ! $cfg{AUDIOSINK} }",
+  "avi", "avidemux video_00! { queue ! windec ! $cfg{VIDEOSINK} }",
+  "vob", "mpegdemux video_00! { queue ! mpeg2dec ! $cfg{VIDEOSINK} }",
+
+);
 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";
+  $command = "$GST_LAUNCH filesrc location=\"$file\" ! $pipe";
   print "Running $command\n";
   system ($command);
 }