视频采集及显示: v4l2uvc.c文件参考
视频采集及显示 1.0 beta
Linux平台视频采集及其显示

v4l2uvc.c文件参考

使用V4L2进行视频采集的一些例程,包括打开摄像头,关闭摄像头, 查询摄像头各种属性,捕获图像数据,等等。 更多...

#include "v4l2uvc.h"
#include "utils.h"

宏定义

#define HEADFRAME1   0xaf

函数

int v4l2_open (struct video_info *vd_info)
int v4l2_close (struct video_info *vd_info)
int v4l2_init (struct video_info *vd_info, uint32 format, uint32 width, uint32 height)
int v4l2_on (struct video_info *vd_info)
int v4l2_off (struct video_info *vd_info)
int v4l2_get_pic (struct video_info *vd_info)
int v4l2_process (struct video_info *vd_info)
int v4l2_grab (struct video_info *vd_info)
void v4l2_capture (struct video_info *vd_info)
int v4l2_get_capability (struct video_info *vd_info)
int v4l2_get_format (struct video_info *vd_info)
int v4l2_set_foramt (struct video_info *vd_info, uint32 format, uint32 width, uint32 height)

详细描述

使用V4L2进行视频采集的一些例程,包括打开摄像头,关闭摄像头, 查询摄像头各种属性,捕获图像数据,等等。

Copyleft (C) 2010 Late Lee This program is tested on LINUX PLATFORM, WITH GCC 4.x. The program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. Please feel free to use the program, and I feel free to ignore the related issues. Any questions or suggestions, or bugs, please contact me at <$ echo -n "aHR0cDovL3d3dy5sYXRlbGVlLm9yZwo=" | base64 -d> or e-mail to <$ echo -n "bGF0ZWxlZUAxNjMuY29tCg==" | base64 -d> if you want to do this.

作者:
Late Lee <latelee@163.com>
日期:
Sat Apr 24 2010

函数文档

void v4l2_capture ( struct video_info vd_info)

v4l2_capture - 采集摄像头数据

参数:
vd_info摄像头信息结构体
注解:
该函数为测试函数,实际中未使用
int v4l2_close ( struct video_info vd_info)

v4l2_close - 关闭摄像头,并释放内存

参数:
vd_info摄像头信息结构体
返回:
成功关闭返回值为0,否则为-1,并提示出错信息
int v4l2_get_capability ( struct video_info vd_info)

v4l2_get_capability - 获取摄像头capability

参数:
vd_info摄像头信息结构体
返回:
成功则返回0,否则返回-1,并提示出错信息
注解:
关于摄像头的capability的信息,请参考<linux/videodev2.h>或V4L2手册
int v4l2_get_format ( struct video_info vd_info)

v4l2_get_format - 获取摄像头格式

参数:
vd_info摄像头信息结构体
返回:
成功返回0,否则返回-1,并提示出错信息
注解:
1、在RF6.02中获得到格式为YUYV,但在FC10中却是MJPEG,未知原因
2、v4l2_pix_format结构体成员pixelformat,在某些平台上却是pixelfmt,具体参考vedeodev2.h 头文件,原因未找到
3、获取可读性的格式的代码片段是参考网上资料的,详细格式参考<linux/videodev2.h>。
int v4l2_get_pic ( struct video_info vd_info)

v4l2_get_pic - 获取图片

参数:
vd_info摄像头信息结构体
返回:
成功则返回0,否则返回-1,并提示出错信息
int v4l2_grab ( struct video_info vd_info)

v4l2_grab - 采集摄像头数据

参数:
vd_info摄像头信息结构体
返回:
成功则返回0,否则返回-1,并提示出错信息
int v4l2_init ( struct video_info vd_info,
uint32  format,
uint32  width,
uint32  height 
)

v4l2_init - 以指定参数初始化摄像头,该函数包括了打开摄像头

参数:
vd_info摄像头信息结构体
format摄像头支持的格式,如V4L2_PIX_FMT_YUYV
width图像宽,如640
height图像高,如480
返回:
成功初始化则返回0,否则返回-1,并提示出错信息

'format' will be also ok

int v4l2_off ( struct video_info vd_info)

v4l2_off - 停止采集摄像头数据

参数:
vd_info摄像头信息结构体
返回:
成功则返回0,否则返回-1,并提示出错信息
int v4l2_on ( struct video_info vd_info)

v4l2_on - 启动摄像头采集数据

参数:
vd_info摄像头信息结构体
返回:
成功开始采集则返回0,否则返回-1,并提示出错信息
int v4l2_open ( struct video_info vd_info)

v4l2_open - 打开摄像头

参数:
vd_info摄像头信息结构体
返回:
成功返回值为0,否则为-1,并提示出错信息
注解:
vd_info结构体中的摄像头描述符由此函数指定
int v4l2_process ( struct video_info vd_info)

v4l2_process - 摄像头数据处理

参数:
vd_info摄像头信息结构体
返回:
成功则返回0,否则返回-1,并提示出错信息
注解:
如果摄像头为MJPEG格式,则可以直接将tmp_buff的数据写到文件, 保存为jpg格式,即为一张图片。
int v4l2_set_foramt ( struct video_info vd_info,
uint32  format,
uint32  width,
uint32  height 
)

v4l2_set_format - 设置摄像头格式

参数:
vd_info摄像头信息结构体
format格式,如V4L2_PIX_FMT_YUYV
width图像宽度
height图像高度
返回:
成功返回0,否则返回-1,并提示出错信息