ljxwxylyq 发表于 2010-4-27 15:29

Linux下V4L2编程小结--武汉华嵌吴扬飞老师

作者:华清远见武汉华嵌嵌入式培训中心 助理讲师 吴扬飞

Linux下V4L2编程小结

一.设置采集方式,格式 常用命令标志

    打开视频设备后,可以设置该视频设备的属性,例如裁剪、缩放等。这一步是可选的。在Linux编程中,一般使用ioctl函数来对设备的I/O通道进行管理:
extern int ioctl (int __fd, unsigned long int __request, …) __THROW;
__fd:设备的ID,例如刚才用open函数打开视频通道后返回的cameraFd;
__request:具体的命令标志符。
在进行V4L2开发中,一般会用到以下的命令标志符:
[*]VIDIOC_REQBUFS:分配内存 [*]VIDIOC_QUERYBUF:把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址 [*]VIDIOC_QUERYCAP:查询驱动功能 [*]VIDIOC_ENUM_FMT:获取当前驱动支持的视频格式 [*]VIDIOC_S_FMT:设置当前驱动的频捕获格式 [*]VIDIOC_G_FMT:读取当前驱动的频捕获格式 [*]VIDIOC_TRY_FMT:验证当前驱动的显示格式 [*]VIDIOC_CROPCAP:查询驱动的修剪能力 [*]VIDIOC_S_CROP:设置视频信号的边框 [*]VIDIOC_G_CROP:读取视频信号的边框 [*]VIDIOC_QBUF:把数据从缓存中读取出来 [*]VIDIOC_DQBUF:把数据放回缓存队列 [*]VIDIOC_STREAMON:开始视频显示函数 [*]VIDIOC_STREAMOFF:结束视频显示函数 [*]VIDIOC_QUERYSTD:检查当前视频设备支持的标准,例如PAL或NTSC。 这些IO调用,有些是必须的,有些是可选择的。

二.一般操作流程(视频设备)
转自:http://www.embedhq.org/html/jsbw/2010/0425/390.html
页: [1]
查看完整版本: Linux下V4L2编程小结--武汉华嵌吴扬飞老师