diff options
author | Simon Harrison <si1356@yahoo.co.uk> | 2009-01-09 07:07:07 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-01-29 05:35:37 -0500 |
commit | f90c3c0bdd7a3f16eecf1b077f5e031c44ddb605 (patch) | |
tree | b7300b97e8e6f44fa63e588a9bce9a9f32e427e6 /Documentation | |
parent | 3e478c06e83efc365e8351bff7b4c569f22e642d (diff) |
V4L/DVB (10210): Fix a bug on v4lgrab.c
v4lgrab breaks the fputc macro on some systems, because of #defined
FILE.
Also, I also added comments because it was not at all clear that to get gspca
cameras to work with this application you need v4l1compat.
Signed-off-by: Simon Harrison <si1356@yahoo.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/video4linux/v4lgrab.c | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/Documentation/video4linux/v4lgrab.c b/Documentation/video4linux/v4lgrab.c index 079b628481cf..d6e70bef8ad0 100644 --- a/Documentation/video4linux/v4lgrab.c +++ b/Documentation/video4linux/v4lgrab.c | |||
@@ -4,12 +4,21 @@ | |||
4 | * | 4 | * |
5 | * Compile with: | 5 | * Compile with: |
6 | * gcc -s -Wall -Wstrict-prototypes v4lgrab.c -o v4lgrab | 6 | * gcc -s -Wall -Wstrict-prototypes v4lgrab.c -o v4lgrab |
7 | * Use as: | 7 | * Use as: |
8 | * v4lgrab >image.ppm | 8 | * v4lgrab >image.ppm |
9 | * | 9 | * |
10 | * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org> | 10 | * Copyright (C) 1998-05-03, Phil Blundell <philb@gnu.org> |
11 | * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c | 11 | * Copied from http://www.tazenda.demon.co.uk/phil/vgrabber.c |
12 | * with minor modifications (Dave Forrest, drf5n@virginia.edu). | 12 | * with minor modifications (Dave Forrest, drf5n@virginia.edu). |
13 | * | ||
14 | * | ||
15 | * For some cameras you may need to pre-load libv4l to perform | ||
16 | * the necessary decompression, e.g.: | ||
17 | * | ||
18 | * export LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so | ||
19 | * ./v4lgrab >image.ppm | ||
20 | * | ||
21 | * see http://hansdegoede.livejournal.com/3636.html for details. | ||
13 | * | 22 | * |
14 | */ | 23 | */ |
15 | 24 | ||
@@ -24,7 +33,7 @@ | |||
24 | #include <linux/types.h> | 33 | #include <linux/types.h> |
25 | #include <linux/videodev.h> | 34 | #include <linux/videodev.h> |
26 | 35 | ||
27 | #define FILE "/dev/video0" | 36 | #define VIDEO_DEV "/dev/video0" |
28 | 37 | ||
29 | /* Stole this from tvset.c */ | 38 | /* Stole this from tvset.c */ |
30 | 39 | ||
@@ -90,7 +99,7 @@ int get_brightness_adj(unsigned char *image, long size, int *brightness) { | |||
90 | 99 | ||
91 | int main(int argc, char ** argv) | 100 | int main(int argc, char ** argv) |
92 | { | 101 | { |
93 | int fd = open(FILE, O_RDONLY), f; | 102 | int fd = open(VIDEO_DEV, O_RDONLY), f; |
94 | struct video_capability cap; | 103 | struct video_capability cap; |
95 | struct video_window win; | 104 | struct video_window win; |
96 | struct video_picture vpic; | 105 | struct video_picture vpic; |
@@ -100,13 +109,13 @@ int main(int argc, char ** argv) | |||
100 | unsigned int i, src_depth; | 109 | unsigned int i, src_depth; |
101 | 110 | ||
102 | if (fd < 0) { | 111 | if (fd < 0) { |
103 | perror(FILE); | 112 | perror(VIDEO_DEV); |
104 | exit(1); | 113 | exit(1); |
105 | } | 114 | } |
106 | 115 | ||
107 | if (ioctl(fd, VIDIOCGCAP, &cap) < 0) { | 116 | if (ioctl(fd, VIDIOCGCAP, &cap) < 0) { |
108 | perror("VIDIOGCAP"); | 117 | perror("VIDIOGCAP"); |
109 | fprintf(stderr, "(" FILE " not a video4linux device?)\n"); | 118 | fprintf(stderr, "(" VIDEO_DEV " not a video4linux device?)\n"); |
110 | close(fd); | 119 | close(fd); |
111 | exit(1); | 120 | exit(1); |
112 | } | 121 | } |