ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Video-Capture-V4l/examples/indexer
Revision: 1.1
Committed: Fri May 5 20:21:53 2000 UTC (26 years, 4 months ago) by pcg
Branch: MAIN
CVS Tags: rel-0_9, rel-0_902, HEAD
Log Message:
Initial check-in

File Contents

# Content
1 #!/usr/bin/perl
2
3 use Video::Capture::V4l;
4 BEGIN { eval "use Time::HiRes 'time'" }
5
6 $grab = new Video::Capture::V4l;
7
8 my $channel = $grab->channel (0);
9 my $tuner = $grab->tuner (0);
10 $tuner->mode(MODE_PAL); $tuner->set;
11 $channel->norm(MODE_PAL); $channel->set;
12 my $fps = 25; # glorious PAL
13
14 $grab->picture->brightness(32768);
15 $grab->picture->contrast(40000);
16 $grab->picture->hue(32768);
17 $grab->picture->colour(32768);
18 $grab->picture->set;
19
20 #$RTL2 = 591250;
21 #$RTL2 = 855250;
22 $RTL2 = 154250;
23 print $grab->freq ($RTL2),"\n";
24
25 $|=1;
26
27 my($w,$h)=(128,128);
28
29 my $count = 0;
30
31 open DB,">db" or die;
32 select DB; $|=1; select STDOUT;
33
34 print "press enter to start> "; <STDIN>;
35 my $frame=0;
36 my $fr=$grab->capture ($frame,$w,$h);
37
38 print DB pack("N*",$w>>3,$h>>3);
39
40 for(;;) {
41 my $nfr = $grab->capture (1-$frame,$w,$h);
42 $grab->sync($frame) or die "unable to sync";
43
44 my $stamp = time;
45 if ($start && $start!=$stamp) {
46 $stamp = int(($stamp-$start)*$fps+0.5);
47 print(($stamp-$count)," frames lost\n") if $stamp > $count;
48 $count=$stamp;
49 } else {
50 $start=$stamp;
51 $stamp=$count;
52 }
53
54 # width MUST be divisible by 4
55 Video::Capture::V4l::reduce2($fr,$w>>0);
56 Video::Capture::V4l::reduce2($fr,$w>>1);
57 Video::Capture::V4l::reduce2($fr,$w>>2);
58 Video::Capture::V4l::normalize($fr);
59
60 #${$img->get_dataref}=$fr; $img->upd_data();
61 #wpnm $img,sprintf('frame/%03d',$count),'PPM',1;
62
63 print " $count\r";
64 $count++;
65
66 print DB pack("i",$stamp),$fr;
67
68 $frame = 1-$frame;
69 $fr = $nfr;
70 }
71