V4L2
风雅飘零
这个作者很懒,什么都没留下…
展开
-
和菜鸟一起学linux之V4L2摄像头应用流程
和菜鸟一起学linux之V4L2摄像头应用流程转载 2017-10-27 16:17:37 · 1551 阅读 · 0 评论 -
V4L2源代码之旅九:videobuf
转自:http://www.cnblogs.com/ronnydm/p/5796928.html 关于videobuf,即V4L2如何实现高性能的和用户空间的Buffer交互,这部分内容应该是V4L2中最难以理解的部分了。 看文档:kernel/Documentation/video4linux/videobuf. videobuf的功能是V4L2 driver和u转载 2017-11-16 16:46:16 · 891 阅读 · 0 评论 -
V4L2源代码之旅八:ioctl
转自:http://www.cnblogs.com/ronnydm/p/5796821.html我们从代码的角度看看,如何调用到我们设定的ioctl。1. 我们在驱动程序中,分配了结构体struct video_device,并做了设定,然后调用video_register_device进行注册。在video_device的设置中,存在ioctl的设置。/* kerne转载 2017-11-10 11:19:47 · 959 阅读 · 0 评论 -
V4L2源代码之旅七:controls
转自:http://www.cnblogs.com/ronnydm/p/5787182.html通过上两篇文章,我们已经成功的建立了/dev/video0这个字符设备,此时,在UserSpace就可以打开该设备,完成相应的调用。 总结如何使用V4L2架构建立我们自己的设备驱动,其实就是以下3个结构体的设置及注册: 1. struct v4l2_device转载 2017-11-10 11:18:27 · 1062 阅读 · 1 评论 -
V4L2源代码之旅六:源码追踪
转自:http://www.cnblogs.com/ronnydm/p/5785265.html1. v4l2_device_register/* kernel/drivers/media/video/v4l2-device.c */int v4l2_device_register(struct device *dev, struct v4l2_device *v4l2_de转载 2017-11-10 11:16:38 · 1879 阅读 · 0 评论 -
V4L2源代码之旅五:V4L2的起点和终点
转自:http://www.cnblogs.com/ronnydm/p/5768899.html一. 思路 不管V4L2如何封装,始终是一个Driver,那么Driver必然会提供对User空间的file_operations,所以file_operations是线索起点。 终点就是V4L2可以正确调用到我们注册的关于Sensor和ISP的操作接口.二. 起转载 2017-11-10 11:16:21 · 1005 阅读 · 0 评论 -
V4L2源代码之旅四:struct video_device
转自:http://www.cnblogs.com/ronnydm/p/5781042.html在/dev下被创建的真正的设备节点是使用video_device结构体(v4l2-dev.h)。这个结构体同时也可以动态分配或嵌入到一个更大的结构体。动态分配: struct video_device *vdev = video_device_alloc();转载 2017-11-10 11:13:29 · 2402 阅读 · 0 评论 -
V4L2源代码之旅三:I2C sub-device drivers
转载:http://www.cnblogs.com/ronnydm/p/5780042.htmlv4l2-common.h 对一个I2C驱动添加v4l2_subdev支持的建议方式是将v4l2_subdev嵌入到每一个I2C设备实例的state struct。如果设备非常简单,可以直接创建v4l2_subdev。典型的state struct类似如下:stru转载 2017-11-10 11:12:11 · 879 阅读 · 0 评论 -
V4L2源代码之旅二:V4L2 sub-device userspace API
转自:http://www.cnblogs.com/ronnydm/p/5779584.html 除了通过v4l2_subdev_ops结构体暴露kernel API,V4L2 sub-devices也可以被用户空间应用直接控制。 v4l-subdevX的设备节点可以在/dev下被创建来直接访问sub-devices。如果一个sub-device支持用户空间直接配置,转载 2017-11-10 11:09:31 · 1498 阅读 · 0 评论 -
V4L2源代码之旅一:struct v4l2_device
转自:http://www.cnblogs.com/ronnydm/p/5771221.html一. 文档位置:linux-3.08/Documentation/video4linux/v4l2-framework.txt二.翻译总结: V4L2驱动程序往往是很复杂的,其原因是硬件的复杂性:大多数设备有多个IC,从而导出多个设备节点/dev,并且创建了non-V4L2设备转载 2017-11-10 11:08:01 · 1223 阅读 · 0 评论 -
V4L2源代码之旅一:struct v4l2_subdev
转自:http://www.cnblogs.com/ronnydm/p/5774263.html大多数的驱动程序需要和sub-devices通信。这些设备可以完成各种任务,但是通常是处理音频或视频的muxing,encoding,decoding。webcams通常子设备是:sensor和camera controllers。通常,他们是I2C设备。为了给这些sub-devices提供一致转载 2017-11-10 11:02:57 · 3133 阅读 · 0 评论 -
Camera V4L2 架构分析
转自:点击打开链接V4L2相关代码位于linux-3.4/drivers/media/video目录中。v4l2-dev.c文件提供设备节点实现与用户层数据交流,设备节点在/dev/目录下以video0、video1等名字出现。注册字符设备的语句如下:[java] view plain copy/* Part转载 2017-11-10 10:24:44 · 1416 阅读 · 0 评论 -
V4L2源代码之旅十:videobuf主要结构体
转自:http://www.cnblogs.com/ronnydm/p/5815977.html1. vb2_mem_ops/** * struct vb2_mem_ops - memory handling/memory allocator operations * @alloc: allocate video memory and, optionally, a转载 2017-11-16 16:47:17 · 960 阅读 · 0 评论