Compare commits
	
		
			3 Commits
		
	
	
		
			0e6d2f8ad7
			...
			dc7734b49d
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					dc7734b49d | ||
| 
						 | 
					56d46d44d9 | ||
| 
						 | 
					18a5a5229f | 
@ -5,12 +5,15 @@ DEPS = ../floatimg.h  ../libfloatimg.a Makefile
 | 
			
		||||
 | 
			
		||||
all:	grabvidseq t
 | 
			
		||||
 | 
			
		||||
t:	t.c Makefile ${DEPS} funcs.o
 | 
			
		||||
	gcc ${COPT} $< funcs.o ../libfloatimg.a -o $@
 | 
			
		||||
t:	t.c Makefile ${DEPS} funcs.o v4l2_pr_structs.o
 | 
			
		||||
	gcc ${COPT} $< funcs.o v4l2_pr_structs.o ../libfloatimg.a -o $@
 | 
			
		||||
 | 
			
		||||
funcs.o:	funcs.c funcs.h Makefile
 | 
			
		||||
	gcc ${COPT} -c $<
 | 
			
		||||
 | 
			
		||||
v4l2_pr_structs.o:	v4l2_pr_structs.c v4l2_pr_structs.h Makefile
 | 
			
		||||
	gcc ${COPT} -c $<
 | 
			
		||||
 | 
			
		||||
#		---------------
 | 
			
		||||
#		external things
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -145,7 +145,7 @@ for (n_buffers = 0; n_buffers < req.count; ++n_buffers) {
 | 
			
		||||
				fd, buf.m.offset);
 | 
			
		||||
 | 
			
		||||
	if (MAP_FAILED == buffers[n_buffers].start) {
 | 
			
		||||
		perror("mmap");
 | 
			
		||||
		perror("v4l2_mmap");
 | 
			
		||||
		exit(EXIT_FAILURE);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@ -161,8 +161,11 @@ for (i = 0; i < n_buffers; ++i) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 | 
			
		||||
 | 
			
		||||
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++) {
 | 
			
		||||
	do	{
 | 
			
		||||
		FD_ZERO(&fds);
 | 
			
		||||
@ -186,7 +189,7 @@ for (i = 0; i < nbre_capt; i++) {
 | 
			
		||||
	xioctl(fd, VIDIOC_DQBUF, &buf);
 | 
			
		||||
 | 
			
		||||
	sprintf(out_name, "%s/%05d.ppm", dest_dir, i);
 | 
			
		||||
	if (verbosity) fprintf(stderr, "--> %s\n", out_name);
 | 
			
		||||
	if (verbosity > 1) fprintf(stderr, "--> %s\n", out_name);
 | 
			
		||||
 | 
			
		||||
	fout = fopen(out_name, "w");
 | 
			
		||||
	if (!fout) {
 | 
			
		||||
@ -206,7 +209,7 @@ for (i = 0; i < nbre_capt; i++) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
t_final = fimg_timer_get(0);
 | 
			
		||||
fprintf(stderr, "elapsed time %g s\n", t_final);
 | 
			
		||||
fprintf(stderr, "pid %d : elapsed time %g s\n", getpid(), t_final);
 | 
			
		||||
 | 
			
		||||
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
 | 
			
		||||
xioctl(fd, VIDIOC_STREAMOFF, &type);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								v4l2/t.c
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								v4l2/t.c
									
									
									
									
									
								
							@ -8,27 +8,49 @@
 | 
			
		||||
#include  <math.h>
 | 
			
		||||
#include  <string.h>
 | 
			
		||||
 | 
			
		||||
#include <linux/videodev2.h>
 | 
			
		||||
 | 
			
		||||
#include  "funcs.h"
 | 
			
		||||
#include  "../floatimg.h"
 | 
			
		||||
 | 
			
		||||
#include  "v4l2_pr_structs.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int		verbosity;
 | 
			
		||||
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
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);
 | 
			
		||||
 | 
			
		||||
vfd = open_device(dev);
 | 
			
		||||
fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
 | 
			
		||||
 | 
			
		||||
foo = init_device(0);
 | 
			
		||||
fprintf(stderr, "\tinit -> %d\n", foo);
 | 
			
		||||
memset(&fmt, 0, sizeof(fmt));
 | 
			
		||||
pr_v4l2_format("after 0", &fmt);
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
}
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
int liste_des_devices(int K)
 | 
			
		||||
{
 | 
			
		||||
fprintf(stderr, "%s not implemented\n", __func__);
 | 
			
		||||
return -1;
 | 
			
		||||
}
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
void help(int k)
 | 
			
		||||
{
 | 
			
		||||
puts("Options :");
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										64
									
								
								v4l2/v4l2_pr_structs.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								v4l2/v4l2_pr_structs.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,64 @@
 | 
			
		||||
/*
 | 
			
		||||
 *	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;
 | 
			
		||||
}
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
/* --------------------------------------------------------------------- */
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										9
									
								
								v4l2/v4l2_pr_structs.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								v4l2/v4l2_pr_structs.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,9 @@
 | 
			
		||||
/*
 | 
			
		||||
 *	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