http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.14.tar.gz
[xscreensaver] / driver / xscreensaver-getimage-video
index 7bcd9ff2c90b4aa5933fb494204269d8a6d65812..d35d0ca730476ead33a91473f070235d47e1fd26 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl -w
-# Copyright © 2001 Jamie Zawinski <jwz@jwz.org>, all rights reserved.
+# Copyright © 2001, 2002, 2003 Jamie Zawinski <jwz@jwz.org>.
 #
 # Permission to use, copy, modify, distribute, and sell this software and its
 # documentation for any purpose is hereby granted without fee, provided that
@@ -29,7 +29,7 @@ use diagnostics;
 use strict;
 
 my $progname = $0; $progname =~ s@.*/@@g;
-my $version = q{ $Revision: 1.5 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
+my $version = q{ $Revision: 1.12 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/;
 
 my $verbose = 0;
 
@@ -52,12 +52,19 @@ my $sgi_bogosity = "$tmpfile-00000.rgb";
 
 my @programs = (
 
-  "bttvgrab -d q -Q -l 1 -o jpg -f $tmpfile",  # BTTV
+  "bttvgrab -d q -Q -l 1 -o ppm -f $tmpfile",  # BTTV
   "qcam > $tmpfile",                           # Connectix Qcam
+  "gqcam -t PPM -d $tmpfile",                  # GTK+ Qcam clone
   "streamer -s 768x576 -o $tmpfile",           # XawTV
   "atitv snap $tmpfile",                       # ATI video capture card
 
-  "vidtomem -f $tmpfile 2>- && mv $sgi_bogosity $tmpfile",  # Silicon Graphics
+  "grab -type ppm -format ntsc -source 1 " .
+        "-settle 0.75 -output $tmpfile",       # *BSD BT848 module
+
+  "motioneye -j $tmpfile",                      # Sony Vaio MotionEye
+                                               # (hardware jpeg encoder)
+
+  "vidtomem -f $tmpfile 2>&- && mv $sgi_bogosity $tmpfile",  # Silicon Graphics
 );
 
 
@@ -91,7 +98,8 @@ sub pick_grabber {
 }
 
 
-my $use_stdout = 0;
+my $use_stdout_p = 0;
+my $return_filename_p = 0;
 
 sub grab_image {
   my $cmd = pick_grabber();
@@ -106,7 +114,11 @@ sub grab_image {
       error "\"$cmd\" produced no data.";
     }
 
-  if ($use_stdout) {
+  if ($return_filename_p) {
+    print STDERR "$progname: wrote \"$tmpfile\"\n" if ($verbose);
+    print STDOUT "$tmpfile\n";
+
+  } elsif ($use_stdout_p) {
     local *IN;
     my $ppm = "";
     my $reader  = "<$tmpfile";
@@ -140,7 +152,7 @@ sub grab_image {
 
 
 sub usage {
-  print STDERR "usage: $progname [--verbose] [--stdout]\n";
+  print STDERR "usage: $progname [--verbose] [--name | --stdout]\n";
   exit 1;
 }
 
@@ -149,7 +161,8 @@ sub main {
     shift @ARGV;
     if ($_ eq "--verbose") { $verbose++; }
     elsif (m/^-v+$/) { $verbose += length($_)-1; }
-    elsif (m/^--?stdout$/) { $use_stdout = 1; }
+    elsif (m/^--?stdout$/) { $use_stdout_p = 1; }
+    elsif (m/^--?name$/)   { $return_filename_p = 1; }
     elsif (m/^-./) { usage; }
     else { usage; }
   }