
基于 Linux 的 v4l2 视频架构驱动编写
本 篇 文 章 来 源 于 Linux 公 社 网 站 (www.linuxidc.com) 原 文 链 接 :
http://www.linuxidc.com/Linux/2011-03/33022.htm
Linux 系统中,视频设备被当作一个设备文件来看待,设备文件存放在 /dev 目录下,完整路径的设备文件
名为: /dev/video0 .
视频采集基本步骤流程如下: 打开视频设备,设置视频设备属性及采集方式、视频数据处理,关闭视频设
备,如下图所示:
一、打开视频设备
打开视频设备非常简单,在 V4L2 中,视频设备被看做一个文件。使用 open 函数打开这个设备:
1. 用非阻塞模式打开摄像头设备
int cameraFd;
cameraFd = open("/dev/video0", O_RDWR | O_NONBLOCK);
2. 如果用阻塞模式打开摄像头设备,上述代码变为:
cameraFd = open("/dev/video0", O_RDWR);
关于阻塞模式和非阻塞模式
应用程序能够使用阻塞模式或非阻塞模式打开视频设备,如果使用非阻塞模式调用视频设备,即使尚未捕
获到信息,驱动依旧会把缓存(DQBUFF)里的东西返回给应用程序。
二、Linux 视频设备驱动常用控制命令使用说明
设置视频设备属性通过 ioctl 来进行设置,ioctl 有三个参数,分别是 fd, cmd,和 parameter,表示设备描
述符,控制命令和控制命令参数。
Linux 视频设备驱动接口 V4L2 支持的常用控制命令如下:
1. 控制命令 VIDIOC_ENUM_FMT
评论4