收集 V4L2 程序编写
来源:互联网 发布:折800软件怎么样 编辑:程序博客网 时间:2024/04/30 05:05
VIDIOC_S_CROP
ioctl会传入一个v4l2_crop
给驱动程序
crop.c.left, crop.c.top. crop.c.width, crop.c.height定义了一个长方形区域,这个区域是capture或者overlay模式下的取景范围,
举个例子,图片的active(actual) size是720x576, 现在你只想capture或者overlay (64,64) ,(556, 64), (64,512),(556, 512)这四个点组成区域内的像素. 即在原始图像上下左右各裁掉64像素大小, 那么可如下设置
memset(&crop, 0, sizeof(struct v4l2_crop));
crop.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;crop.c.left = 64;
crop.c.top = 64;
crop.c.width = 592;
crop.c.height = 448;
ret = xioctl(fd, VIDIOC_S_CROP, &crop);
if (ret) {
printf("xioctl VIDIOC_S_CROP failed, errno(%d)\n", errno);
exit(EXIT_FAILURE);
}
VIDIOC_S_PARM
set stream param
设置流参数,这个和video capture是相同的,这里的param.type是V4L2_BUF_TYPE_VIDEO_CAPTURE,其中timeperframe的分母是需要设定的帧率,而分子是1。
ioctl(camera_device, VIDIOC_S_PARM, &parm) ;
[PS]这里补充一点stream param方面的spec:
一般来说当前的帧率是由当前的视频标准来决定的,如果默认采用视频标准的帧率就不需要设置流参数,但是如果想获得或者设定自己的帧率就需要使用VIDIOC_G_PARM, VIDIOC_S_PARM:
int ioctl(int fd, int request, v4l2_streamparm *argp);
struct v4l2_stramparam包含以下主要成员:
enum v4l2_buf_type type
union param
struct v4l2_captureparm capture
struct v4l2_outputparam output
//要注意的是在这里,不管是overaly还是capture,这里的buffer type都是选择的V4L2_BUF_TYPE_VIDEO_CAPTURE。
Struct v4l2_captureparam包含以下主要成员:
__u32 capturemode
//是否支持高质量图像捕捉
struct v4l2_fract timeperframe
//设置帧率,通过分母分子实现
这里要注意的是,通过 VIDIOC_S_PARM设置帧率不一定成功,driver会根据硬件限制来设置这些参数,所以一般设置以后可以通过VIDIOC_G_PARM来看设定是否成功。
- 收集 V4L2 程序编写
- 收集 V4L2 程序编写
- Delphi编写Socket通讯程序[收集]
- 编写JAVA程序收集Tomcat性能数据
- 1 程序后台数据收集模块编写
- v4l2驱动编写篇
- v4l2驱动编写篇
- v4l2驱动编写
- V4L2驱动编写网址
- v4l2驱动编写篇
- v4l2驱动编写篇
- v4l2的应用程序编写
- v4l2驱动编写篇
- v4l2驱动编写篇
- v4l2驱动编写篇
- v4l2的应用程序编写
- 利用V4L2编写的USB摄像头程序1【经OK6410验证成功】
- 利用V4L2编写的USB摄像头程序2【经OK6410验证成功】
- avs 中国音视频标准DRA 中音频标准及应用
- 第二周任务1
- 音视频中的CBR,VBR,ABR
- Page Rank介绍
- 如何在VMware中实现Linux系统与Windows系统的文件交换
- 收集 V4L2 程序编写
- 第二周实验报告1
- 理解WebKit和Chromium: WebKit和Chromium组成
- http://acm.hdu.edu.cn/showproblem.php?pid=1892&&二维树状数组
- pdf转swf的Java实现,可用于实现类似百度文库的效果
- MyEclipse 8.6快捷键
- Java Object类中方法理解
- 应聘华为的朋友小心了,应聘华为的悲惨遭遇!
- 填充DataGridView