V4L2摄像头获取单幅图片测试程序
来源:互联网 发布:趣学python编程 pdf 编辑:程序博客网 时间:2024/05/22 06:38
http://hi.baidu.com/aokikyon/item/65a3fc140201abfa9c778a30
#根据网上常见的一个测试程序修改而来 by rockie cheng
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <getopt.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <malloc.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/mman.h>
#include <sys/ioctl.h>
#include <asm/types.h>
#include <linux/videodev2.h>
#define CLEAR(x) memset (&(x), 0, sizeof (x))
struct buffer {
void * start;
size_t length;
};
static char * dev_name = "/dev/video0";
static int fd = -1;
struct buffer * buffers = NULL;
FILE *file_fd;
static unsigned long file_length;
static unsigned char *file_name;
int main (int argc,char ** argv)
{
struct v4l2_capability cap;
struct v4l2_format fmt;
file_fd = fopen("test.jpg", "w");
fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
ioctl (fd, VIDIOC_QUERYCAP, &cap);
CLEAR (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_YUYV;
fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;
ioctl (fd, VIDIOC_S_FMT, &fmt);
file_length = fmt.fmt.pix.bytesperline * fmt.fmt.pix.height;
buffers = calloc (1, sizeof (*buffers));
buffers[0].length = file_length;
buffers[0].start = malloc (file_length);
for (;;)
{
fd_set fds;
struct timeval tv;
int r;
FD_ZERO (&fds);
FD_SET (fd, &fds);
/* Timeout. */
tv.tv_sec = 3;
tv.tv_usec = 0;
r = select (fd + 1, &fds, NULL, NULL, &tv);
if (-1 == r) {
if (EINTR == errno)
continue;
printf ("select");
}
if (0 == r) {
fprintf (stderr, "select timeout\n");
exit (EXIT_FAILURE);
}
if (read (fd, buffers[0].start, buffers[0].length))
break;
}
fwrite(buffers[0].start, buffers[0].length, 1, file_fd);
free (buffers[0].start);
close (fd);
fclose (file_fd);
exit (EXIT_SUCCESS);
return 0;
}
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序
- V4L2摄像头获取单幅图片测试程序(read/write模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- V4L2摄像头获取单幅图片测试程序(MMAP模式)
- Aptana3 改变背景颜色
- MAX114的采样代码
- C# 隐藏TextBox中闪烁的光标
- Parcelable接口的使用
- 库存先进先出
- V4L2摄像头获取单幅图片测试程序
- 单链表逆序
- 健康妙招
- ScrollView中嵌套ListView
- UDP协议总结
- STM32学习笔记
- Linux网络编程之I/O复用循环服务器
- java数据类型
- Make & Make file