摘要: Linux视频设备驱动常用控制命令使用说明设置视频设备属性通过ioctl来进行设置,ioctl有三个参数,分别是fd, cmd,和parameter,表示设备描述符,控制命令和控制命令参数。1. 控制命令VIDIOC_QUERYCAP功能: 查询设备驱动的功能 ;参数说明:参数类型为V4L2的能力描述类型struct v4l2_capability;struct v4l2_capability { __u8 driver[16]; /* i.e. "bttv" */ //驱动名称, __u8 card[32]; /* i.e. "Hauppauge WinTV&q 阅读全文
posted @ 2012-05-29 18:40 苍术厚朴 阅读(2169) 评论(0) 推荐(0) 编辑
摘要: V4L2驱动框架主设备号: 81次设备号: 0-63 64-67 192-223 224-255/dev/videoX 应用层————————————char驱动————————————V4L2————————————具体的驱动————————————硬件应用层的操作都需要有底层V4L2驱动的支持。内核中有一些非常完善的例子。比如:linux-2.6.26内核目录drivers/media/video/vivi.c中的驱动代码实例。1、V4L2驱动注册、注销函数static int __init videodev_init(void) //注册256个视频设备{ dev_t dev = MK. 阅读全文
posted @ 2012-05-29 18:37 苍术厚朴 阅读(3779) 评论(0) 推荐(1) 编辑
摘要: V4L2是V4L的升级版本,linux下视频设备程序提供了一套接口规范。常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers //申请帧缓冲,对应命令VIDIOC_REQBUFSstruct v4l2_capability //视频设备的功能,对应命令VIDIOC_QUERYCAPstruct v4l2_input //视频输入信息,对应命令VIDIOC_ENUMINPUTstruct v4l2_standard //视频的制式,比如PAL,NTSC,对应命令VIDIOC_ENUMSTDstruct v4l2_for 阅读全文
posted @ 2012-05-29 18:21 苍术厚朴 阅读(12169) 评论(1) 推荐(2) 编辑
摘要: V4L2是V4L的升级版本,为linux下视频设备程序提供了一套接口规范。包括一套数据结构和底层V4L2驱动接口。1、常用的结构体在内核目录include/linux/videodev2.h中定义struct v4l2_requestbuffers//申请帧缓冲,对应命令VIDIOC_REQBUFSstruct v4l2_capability//视频设备的功能,对应命令VIDIOC_QUERYCAPstruct v4l2_input//视频输入信息,对应命令VIDIOC_ENUMINPUTstruct v4l2_standard//视频的制式,比如PAL,NTSC,对应命令VIDIOC_ENU 阅读全文
posted @ 2012-05-29 17:50 苍术厚朴 阅读(3035) 评论(2) 推荐(1) 编辑
摘要: mjpg-streamer是一个很好的开源项目,用来做视频服务器,使用的是v4l2的接口。前面我们说了它的移植过程,但是在某些特定的情况下这个工程不能达到我们的需求,所以我们需要对源码进行修改,或者直接写一个自己的视频服务器。在修改源码或写自己的服务器之前我们分析下这个源码的代码。这个代码里有三个部分是我们需要掌握的内容,第一是v4l2接口,第二个是socket编程,第三个是多线程编程。一、 v4l2接口说明这里涉及到我们如何从摄像头中把数据取出来,首先是封装一个结构体用来描述摄像头的一些信息,比如采集图片的宽高,图片的格式,等等。struct vdIn {int fd;char *video 阅读全文
posted @ 2012-05-29 15:08 苍术厚朴 阅读(726) 评论(0) 推荐(0) 编辑