diff options
author | Richard Boulton <richard@tartarus.org> | 2002-02-04 22:35:09 +0000 |
---|---|---|
committer | Richard Boulton <richard@tartarus.org> | 2002-02-04 22:35:09 +0000 |
commit | fc665b84c7c6c66bc39f25ed4484033ce1fef284 (patch) | |
tree | cd775a3d2834a09f0d65f4701a6cc8ea135c7fd9 /tools | |
parent | 1c6b00f624dfb25254980dde5e15cb1257de579e (diff) |
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.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/gst-launch-ext | 51 |
1 files changed, 39 insertions, 12 deletions
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 = <PLAYLIST>) { + chomp $file2; + my $ext2 = extension ($file2); + playfile($file2, $ext2); + } + close PLAYLIST; + } else { + playfile($file, $ext); + } } |