summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorRichard Boulton <richard@tartarus.org>2002-02-04 22:35:09 +0000
committerRichard Boulton <richard@tartarus.org>2002-02-04 22:35:09 +0000
commitfc665b84c7c6c66bc39f25ed4484033ce1fef284 (patch)
treecd775a3d2834a09f0d65f4701a6cc8ea135c7fd9 /tools
parent1c6b00f624dfb25254980dde5e15cb1257de579e (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-xtools/gst-launch-ext51
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);
+ }
}