Commit 911f9b4d authored by Richard Boulton's avatar Richard Boulton
Browse files

Add support for multiple files on command line, and .m3u playlists (assuming...

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.
parent f847cc21
......@@ -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);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment