summaryrefslogtreecommitdiffstats
path: root/tools/gst-visualise-m.m
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2004-03-10 12:35:44 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2004-03-10 12:35:44 +0000
commitc98b59c7b855ce61c7eb085714fbbdc6dcdfe6f8 (patch)
treed80deabf9cb0d5faf8a0e5ee58312d17c0e9a072 /tools/gst-visualise-m.m
parentfdf6d4edf512dc94a1d745e1e7981257bf293daa (diff)
updating tools generation
Original commit message from CVS: updating tools generation
Diffstat (limited to 'tools/gst-visualise-m.m')
-rw-r--r--tools/gst-visualise-m.m79
1 files changed, 79 insertions, 0 deletions
diff --git a/tools/gst-visualise-m.m b/tools/gst-visualise-m.m
new file mode 100644
index 00000000..25748030
--- /dev/null
+++ b/tools/gst-visualise-m.m
@@ -0,0 +1,79 @@
+#!/usr/bin/perl -w
+
+# launch a gst-launch pipeline to display a visualisation of the
+# input audio.
+# make use of default input srcs.
+# visualisation plugin is specified on command line.
+
+### packages
+
+use File::Basename;
+
+
+my (%pipes, %cfg);
+
+sub read_config
+{
+ my $config_file = `echo -n ~`."/.gst";
+ if (-e $config_file)
+ {
+ open CONFIG, $config_file;
+ while (<CONFIG>)
+ {
+ chomp;
+ s/#.*//;
+ s/\s+$//;
+ next unless length;
+ my ($var, $value) = split (/\s*=\s*/, $_, 2);
+ $cfg{$var} = $value;
+ }
+ if (!($cfg{AUDIOSRC}))
+ {
+ print "Please add an AUDIOSRC 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";
+ }
+ if (!defined $cfg{AUDIOSRC}) { $cfg{AUDIOSRC} = "esdmon"; }
+ if (!defined $cfg{VIDEOSINK}) { $cfg{VIDEOSINK} = "sdlvideosink"; }
+ if (!defined $cfg{CVS_PATH}) { $cfg{CVS_PATH} = `echo -n ~`."/gst/cvs"; }
+}
+
+sub visualise(@)
+{
+ my $vis = $cfg{VISUALIZER};
+ $vis = shift() if ($#_ != -1);
+ $vis = "goom" unless $vis;
+
+ my $pipe;
+ $pipe = $vis unless $pipe = $pipes{$vis};
+
+ $command = "gst-launch-@GST_MAJORMINOR@ $cfg{AUDIOSRC} ! $pipe ! { queue ! colorspace ! $cfg{VIDEOSINK} }";
+ print "Running $command\n";
+ system ("PATH=\$PATH:".$cfg{CVS_PATH}."/gstreamer/tools $command");
+}
+
+### main
+
+read_config ();
+
+%pipes = (
+ "goom", "goom",
+ "chart", "stereo2mono ! chart",
+ "synaesthesia", "synaesthesia",
+ "monoscope", "stereo2mono ! monoscope"
+);
+
+if ($#ARGV > 0) {
+ print STDERR "Usage: gst-visualise [visualiser]\n";
+ exit 1;
+}
+
+visualise(@ARGV);
+