From 2114eaf1f448a390a4d11abe3ec07ba832b7c901 Mon Sep 17 00:00:00 2001 From: Thomas Vander Stichele Date: Mon, 4 Feb 2002 20:57:13 +0000 Subject: [PATCH] gst-launch-ext Original commit message from CVS: gst-launch-ext --- configure.ac | 1 + gst-plugins.spec.in | 4 +-- tools/gst-launch-ext | 65 +++++++++++++++++++++++++++++++++++--------- 3 files changed, 55 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index a31db4401e..d5e947ffef 100644 --- a/configure.ac +++ b/configure.ac @@ -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" diff --git a/gst-plugins.spec.in b/gst-plugins.spec.in index 7900e9fcd1..433b1da6af 100644 --- a/gst-plugins.spec.in +++ b/gst-plugins.spec.in @@ -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 diff --git a/tools/gst-launch-ext b/tools/gst-launch-ext index 909438f6b0..6c5cd893a2 100755 --- a/tools/gst-launch-ext +++ b/tools/gst-launch-ext @@ -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 () + { + 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); }