From fc665b84c7c6c66bc39f25ed4484033ce1fef284 Mon Sep 17 00:00:00 2001 From: Richard Boulton Date: Mon, 4 Feb 2002 22:35:09 +0000 Subject: Add support for multiple files on command line, and .m3u playlists (assuming format of .m3u playlist is simply a list... Original commit message from CVS: Add support for multiple files on command line, and .m3u playlists (assuming format of .m3u playlist is simply a list of filenames, one per line. Comments will probably work, because the file won't be found. ;-> ) Needs to have support for ctrl-c added, so that play can be aborted without going through whole list of files. --- tools/gst-launch-ext | 51 +++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 12 deletions(-) (limited to 'tools') diff --git a/tools/gst-launch-ext b/tools/gst-launch-ext index 7a5dc124..e0445482 100755 --- a/tools/gst-launch-ext +++ b/tools/gst-launch-ext @@ -9,6 +9,7 @@ use File::Basename; +my %pipes; sub extension { @@ -51,11 +52,28 @@ sub read_config if (!defined $cfg{CVS_PATH}) { $cfg{CVS_PATH} = `echo -n ~`."/gst/cvs"; } } +sub playfile($$) +{ + my ($file, $ext) = @_; + + my $pipe; + if ($pipe = $pipes{$ext}) + { + $command = "gst-launch filesrc location=\"$file\" ! $pipe"; + print "Running $command\n"; + system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command"); + } + else + { + print "No suitable pipe found for extension $ext.\n"; + } +} + ### main read_config (); -my %pipes = ( +%pipes = ( "mp3", "mad ! $cfg{AUDIOSINK}", "ogg", "vorbisdec ! $cfg{AUDIOSINK}", "mpg", "mpegdemux video_00! { queue ! mpeg2dec ! $cfg{VIDEOSINK} } mpegdemux0.audio_00! { queue ! mad ! $cfg{AUDIOSINK} }", @@ -64,17 +82,26 @@ my %pipes = ( "wav", "wavparse ! $cfg{AUDIOSINK}", ); -my $file = shift @ARGV or die "Please give a file name !"; - -my $ext = extension ($file); -if ($pipe = $pipes{$ext}) -{ - $command = "gst-launch filesrc location=\"$file\" ! $pipe"; - print "Running $command\n"; - system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command"); +if ($#ARGV == -1) { + print STDERR "Usage: gst-launch-ext filename[s]\n"; + exit 1; } -else -{ - print "No suitable pipe found for extension $ext.\n"; + +my $file; +while ($file = shift @ARGV) { + my $ext = extension ($file); + if ($ext eq 'm3u') + { + open (PLAYLIST, '<', $file); + my $file2; + while ($file2 = ) { + chomp $file2; + my $ext2 = extension ($file2); + playfile($file2, $ext2); + } + close PLAYLIST; + } else { + playfile($file, $ext); + } } -- cgit