#!/usr/bin/perl
#
#
# (c) 1998 Marcus Porter
#
# fishcam CGI Push Animation
#
# location of snapshot
$snapfile = "/insert/path/to/your/file/current.jpg";
# the delay time between each frame
$delaytime = 30;
# response header stuff
$httpok = "HTTP/1.0 200";
$type = "Content-type:";
$length = "Content-length:";
$boundary = "foobarlishous";
$typemixed = "$type multipart/x-mixed-replace;boundary=$boundary";
$typegif = "$type image/gif";
$typejpg = "$type image/jpeg";
$typetxt = "$type text/plain";
$| = 1; # force a flush after each print
# send the main http header
print "$httpok\n";
print "$typemixed\n\n";
# inside boundaries have a leading '--'
print "\n--$boundary\n";
# main loop
while (1==1) # do forever. CGI is interupted when user quits
{
$size = -s $snapfile; #find size of picture
# the content-length header may be required by HTTP 1.1,
# it's optional in HTTP 1.0, but some browsers will
# use it to display progress to the user if you send it.
print "$length $size\n";
print "$typejpg\n\n";
# now send the JPEG, keeping it open for a minimum
# amount of time.
open (INFILE, "<$snapfile");
sysread(INFILE, $buffer, $size);
close(INFILE);
syswrite(STDOUT, $buffer, $size);
# inside boundaries have a leading '--'
print "\n--$boundary\n";
sleep $delaytime;
}