Compare commits
No commits in common. "dc7734b49d5128a445aa0788fde8dff169f1d4cb" and "0e6d2f8ad7dd1895c5cc5645d85d1d3eb242ac22" have entirely different histories.
dc7734b49d
...
0e6d2f8ad7
@ -5,15 +5,12 @@ DEPS = ../floatimg.h ../libfloatimg.a Makefile
|
|||||||
|
|
||||||
all: grabvidseq t
|
all: grabvidseq t
|
||||||
|
|
||||||
t: t.c Makefile ${DEPS} funcs.o v4l2_pr_structs.o
|
t: t.c Makefile ${DEPS} funcs.o
|
||||||
gcc ${COPT} $< funcs.o v4l2_pr_structs.o ../libfloatimg.a -o $@
|
gcc ${COPT} $< funcs.o ../libfloatimg.a -o $@
|
||||||
|
|
||||||
funcs.o: funcs.c funcs.h Makefile
|
funcs.o: funcs.c funcs.h Makefile
|
||||||
gcc ${COPT} -c $<
|
gcc ${COPT} -c $<
|
||||||
|
|
||||||
v4l2_pr_structs.o: v4l2_pr_structs.c v4l2_pr_structs.h Makefile
|
|
||||||
gcc ${COPT} -c $<
|
|
||||||
|
|
||||||
# ---------------
|
# ---------------
|
||||||
# external things
|
# external things
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@ for (n_buffers = 0; n_buffers < req.count; ++n_buffers) {
|
|||||||
fd, buf.m.offset);
|
fd, buf.m.offset);
|
||||||
|
|
||||||
if (MAP_FAILED == buffers[n_buffers].start) {
|
if (MAP_FAILED == buffers[n_buffers].start) {
|
||||||
perror("v4l2_mmap");
|
perror("mmap");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -161,11 +161,8 @@ for (i = 0; i < n_buffers; ++i) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||||
|
|
||||||
xioctl(fd, VIDIOC_STREAMON, &type);
|
xioctl(fd, VIDIOC_STREAMON, &type);
|
||||||
|
|
||||||
if (verbosity) fprintf(stderr,"pid %d grabbing %d picz...\n",
|
|
||||||
getpid(), nbre_capt);
|
|
||||||
|
|
||||||
for (i = 0; i < nbre_capt; i++) {
|
for (i = 0; i < nbre_capt; i++) {
|
||||||
do {
|
do {
|
||||||
FD_ZERO(&fds);
|
FD_ZERO(&fds);
|
||||||
@ -189,7 +186,7 @@ for (i = 0; i < nbre_capt; i++) {
|
|||||||
xioctl(fd, VIDIOC_DQBUF, &buf);
|
xioctl(fd, VIDIOC_DQBUF, &buf);
|
||||||
|
|
||||||
sprintf(out_name, "%s/%05d.ppm", dest_dir, i);
|
sprintf(out_name, "%s/%05d.ppm", dest_dir, i);
|
||||||
if (verbosity > 1) fprintf(stderr, "--> %s\n", out_name);
|
if (verbosity) fprintf(stderr, "--> %s\n", out_name);
|
||||||
|
|
||||||
fout = fopen(out_name, "w");
|
fout = fopen(out_name, "w");
|
||||||
if (!fout) {
|
if (!fout) {
|
||||||
@ -209,7 +206,7 @@ for (i = 0; i < nbre_capt; i++) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
t_final = fimg_timer_get(0);
|
t_final = fimg_timer_get(0);
|
||||||
fprintf(stderr, "pid %d : elapsed time %g s\n", getpid(), t_final);
|
fprintf(stderr, "elapsed time %g s\n", t_final);
|
||||||
|
|
||||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||||
xioctl(fd, VIDIOC_STREAMOFF, &type);
|
xioctl(fd, VIDIOC_STREAMOFF, &type);
|
||||||
|
28
v4l2/t.c
28
v4l2/t.c
@ -8,49 +8,27 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <linux/videodev2.h>
|
|
||||||
|
|
||||||
#include "funcs.h"
|
#include "funcs.h"
|
||||||
#include "../floatimg.h"
|
#include "../floatimg.h"
|
||||||
|
|
||||||
#include "v4l2_pr_structs.h"
|
|
||||||
|
|
||||||
|
|
||||||
int verbosity;
|
int verbosity;
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
int essai(char *dev, int k)
|
int essai(char *dev, int k)
|
||||||
{
|
{
|
||||||
int vfd, foo;
|
int vfd, foo;
|
||||||
struct v4l2_format fmt;
|
|
||||||
|
|
||||||
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, dev, k);
|
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, dev, k);
|
||||||
|
|
||||||
vfd = open_device(dev);
|
vfd = open_device(dev);
|
||||||
fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
|
fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
|
||||||
|
|
||||||
memset(&fmt, 0, sizeof(fmt));
|
foo = init_device(0);
|
||||||
pr_v4l2_format("after 0", &fmt);
|
fprintf(stderr, "\tinit -> %d\n", foo);
|
||||||
|
|
||||||
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
|
||||||
fmt.fmt.pix.width = 640;
|
|
||||||
fmt.fmt.pix.height = 480;
|
|
||||||
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB24;
|
|
||||||
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
|
|
||||||
|
|
||||||
pr_v4l2_format("before ioctl", &fmt);
|
|
||||||
|
|
||||||
|
|
||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
/* --------------------------------------------------------------------- */
|
/* --------------------------------------------------------------------- */
|
||||||
int liste_des_devices(int K)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s not implemented\n", __func__);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
void help(int k)
|
void help(int k)
|
||||||
{
|
{
|
||||||
puts("Options :");
|
puts("Options :");
|
||||||
|
@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
* fonctions pour afficher les structures de V4L2
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#include <linux/videodev2.h>
|
|
||||||
|
|
||||||
#include "v4l2_pr_structs.h"
|
|
||||||
|
|
||||||
#define FP (stdout)
|
|
||||||
|
|
||||||
extern int verbosity;
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
static char *fmttype2str(int type)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch(type) {
|
|
||||||
case 0: return "[zero]";
|
|
||||||
case 1: return "video capture";
|
|
||||||
case 2: return "video output";
|
|
||||||
|
|
||||||
case 13: return "META capture";
|
|
||||||
}
|
|
||||||
|
|
||||||
return "???";
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
int pr_v4l2_format(char *txt, struct v4l2_format *ptr)
|
|
||||||
{
|
|
||||||
fprintf(FP, "-- v4l2_format, %-15s %p\n", txt, ptr);
|
|
||||||
fprintf(FP, " type %d %s\n", ptr->type,/* enum v4l2_buf_type */
|
|
||||||
fmttype2str(ptr->type));
|
|
||||||
|
|
||||||
switch(ptr->type) {
|
|
||||||
|
|
||||||
case 1: // fputs(" Capture\n", FP);
|
|
||||||
fprintf(FP, " dims %dx%d\n",
|
|
||||||
ptr->fmt.pix.width,
|
|
||||||
ptr->fmt.pix.height);
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
default: fputs(" ???\n", FP); break;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fputs(".\n", FP);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
int pr_v4l2_requestbuffers(char *txt, struct v4l2_requestbuffers *ptr)
|
|
||||||
{
|
|
||||||
fprintf(FP, "-- v4l2_requestbuffers, at %p\n", ptr);
|
|
||||||
fprintf(FP, " type %d\n", ptr->type); /* enum v4l2_buf_type */
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
|||||||
/*
|
|
||||||
* fonctions pour afficher les structures de V4L2
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
int pr_v4l2_format(char *txt, struct v4l2_format *ptr);
|
|
||||||
int pr_v4l2_requestbuffers(char *txt, struct v4l2_requestbuffers *ptr);
|
|
||||||
/* --------------------------------------------------------------------- */
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user