size of capture is now an option
This commit is contained in:
parent
7abdf7b43e
commit
d65b93fc66
@ -36,9 +36,6 @@
|
||||
#define SAVE_AS_PNM 0
|
||||
#define SAVE_AS_FIMG 0
|
||||
|
||||
#define WIDTH 1920
|
||||
#define HEIGHT 1080
|
||||
|
||||
/* --------------------------------------------------------------------- */
|
||||
|
||||
#define CLEAR(x) memset(&(x), 0, sizeof(x))
|
||||
@ -78,6 +75,7 @@ puts("\t-n NNN\t\thow many frames ?");
|
||||
puts("\t-O ./\t\tset Output dir");
|
||||
puts("\t-o bla\t\tset output filename");
|
||||
puts("\t-p NNN\t\tperiod in seconds");
|
||||
puts("\t-s WxH\t\tsize of capture");
|
||||
puts("\t-v\t\tincrease verbosity");
|
||||
exit(0);
|
||||
}
|
||||
@ -102,6 +100,8 @@ int foo, bar;
|
||||
double period = 10.0; /* delai entre les captures */
|
||||
int nbre_capt = 1; /* nombre de captures */
|
||||
int opt;
|
||||
int width = 640;
|
||||
int height = 480;
|
||||
double t_final;
|
||||
char *dest_dir = "."; /* no trailing slash */
|
||||
char *outfile = "out.pnm";
|
||||
@ -110,7 +110,7 @@ char *outfile = "out.pnm";
|
||||
FloatImg grab, cumul;
|
||||
#endif
|
||||
|
||||
while ((opt = getopt(argc, argv, "d:hn:o:O:p:v")) != -1) {
|
||||
while ((opt = getopt(argc, argv, "d:hn:o:O:p:s:v")) != -1) {
|
||||
switch(opt) {
|
||||
case 'd': dev_name = optarg; break;
|
||||
case 'h': help(0); break;
|
||||
@ -118,6 +118,7 @@ while ((opt = getopt(argc, argv, "d:hn:o:O:p:v")) != -1) {
|
||||
case 'O': dest_dir = optarg; break;
|
||||
case 'o': outfile = optarg; break;
|
||||
case 'p': period = 1e6*atof(optarg); break;
|
||||
case 's': parse_WxH(optarg, &width, &height); break;
|
||||
case 'v': verbosity++; break;
|
||||
}
|
||||
}
|
||||
@ -125,6 +126,7 @@ while ((opt = getopt(argc, argv, "d:hn:o:O:p:v")) != -1) {
|
||||
if (verbosity) {
|
||||
fprintf(stderr, "running %s pid=%d\n", argv[0], getpid());
|
||||
fprintf(stderr, "period is %.3f microseconds\n", period);
|
||||
fprintf(stderr, "framesize is %dx%d\n", width, height);
|
||||
}
|
||||
|
||||
fd = v4l2_open(dev_name, O_RDWR | O_NONBLOCK, 0);
|
||||
@ -135,8 +137,8 @@ if (fd < 0) {
|
||||
|
||||
CLEAR(fmt);
|
||||
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
fmt.fmt.pix.width = WIDTH;
|
||||
fmt.fmt.pix.height = HEIGHT;
|
||||
fmt.fmt.pix.width = width;
|
||||
fmt.fmt.pix.height = height;
|
||||
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB24;
|
||||
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
|
||||
xioctl(fd, VIDIOC_S_FMT, &fmt);
|
||||
@ -144,7 +146,7 @@ if (fmt.fmt.pix.pixelformat != V4L2_PIX_FMT_RGB24) {
|
||||
printf("Libv4l didn't accept RGB24 format. Can't proceed.\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if ((fmt.fmt.pix.width != WIDTH) || (fmt.fmt.pix.height != HEIGHT)) {
|
||||
if ((fmt.fmt.pix.width != width) || (fmt.fmt.pix.height != height)) {
|
||||
printf("Warning: driver is sending image at %dx%d\n",
|
||||
fmt.fmt.pix.width, fmt.fmt.pix.height);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user