![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux v4l2
文章平均质量分 90
楓潇潇
这个作者很懒,什么都没留下…
展开
-
linux V4L2子系统——v4l2架构(7)之V4L2应用编程
V4L2子系统向上提供了很多访问Video设备的接口,应用程序可以通过系统调用访问Video设备。但由于Video设备千差万别,很少有设备驱动程序能支持所有的接口功能,因此在使用之前,需要了解设备驱动程序支持的功能。...原创 2022-06-19 17:44:02 · 1599 阅读 · 1 评论 -
linux V4L2子系统——v4l2架构(6)之videobuf2
videobuf2抽象层向用户空间提供了标准POSIX I/O系统调用,包括read、poll及mmap等,同时还提供了大量与流式I/O相关的V4L2 ioctl调用,包括缓冲区分配、缓冲区入队、缓冲区出队及流控制。原创 2022-06-19 17:42:05 · 1213 阅读 · 0 评论 -
linux V4L2子系统——v4l2架构(5)之v4l2_device与v4l2_subdev异步机制
在soc中的视频处理一般由多个ip组成,比如cis_dphy、mipi_cis、isp、sensor等,甚至更多的ip, 这样就导致了v4l2的复杂性。在v4l2中的视频数据流是有方向和顺序的,因此在linux中引入了异步注册机制。异步注册的核心在于设备树引入port接口,在子设备中有一个或多个port接口,port接口就是子设备的纽带。...原创 2022-06-19 17:34:51 · 3070 阅读 · 1 评论 -
linux V4L2子系统——v4l2架构(4)之v4l2_subdev
V4L2从设备使用struct v4l2_subdev结构体表示。一个V4L2主设备可能对应多个V4L2从设备,所有主设备对应的从设备都挂到v4l2_device结构体的subdevs链表中。对于视频设备,从设备就是摄像头,通常情况下是I2C设备,主设备可通过I2C总线控制从设备,例如控制摄像头的焦距、闪光灯等。...原创 2022-06-19 17:32:11 · 4511 阅读 · 2 评论 -
linux V4L2子系统——v4l2架构(3)之video_device
在V4L2子系统中,Video设备是一个字符设备,设备节点为/dev/videoX,主设备号为81,次设备号范围为0-63。在用户空间,应用可以通过 `open/close/ioctl/mmap/read/write` 系统调用操作Video设备。原创 2022-06-19 17:29:54 · 3482 阅读 · 0 评论 -
linux V4L2子系统——v4l2架构(2)之v4l2_device
V4L2主设备实例使用struct v4l2_device结构体表示,v4l2_device是V4L2子系统的入口,管理着V4L2子系统的主设备和从设备。简单设备可以仅分配这个结构体,但在大多数情况下,都会将这个结构体嵌入到一个更大的结构体中。...原创 2022-06-19 17:15:52 · 1069 阅读 · 0 评论 -
linux V4L2子系统——v4l2架构(1)之整体架构
V4L(Video for Linux)是Linux内核中关于视频设备的API接口,涉及视频设备的音频和视频信息采集及处理、视频设备的控制。V4L出现于Linux内核2.1版本,经过修改bug和添加功能,Linux内核2.5版本推出了V4L2(Video for Linux Two)子系统,功能更多且更稳定。...原创 2022-06-19 17:12:25 · 4935 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(6)之整体拓扑关系
linux V4L2子系统——v4l2的结构体(6)之整体拓扑关系原创 2022-06-19 17:06:19 · 485 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(4)之ioctl
在应用程序获取视频数据的流程中,都是通过 ioctl 命令与驱动程序进行交互,结合实际需求,实现struct v4l2_ioctl_ops相关的成员即可。原创 2021-03-19 08:43:18 · 1928 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(5)之videobuf2(vb2)
videobuf2 用于连接 V4L2 驱动层与用户空间层,提供数据交流的通道,它可以分配并管理视频帧数据。videobuf 层实现了很多 ioctl 函数,包括 buffer 分配、入队、出队和数据流控制。原创 2021-03-19 08:42:30 · 4221 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(3)之v4l2_subdev
子设备,负责实现具体的功能。可将其抽象为具体的某一摄像头传感器,如OV7740、OV7251、OV5640等。原创 2021-03-19 08:41:44 · 4623 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(1)之v4l2_device
V4L2主设备实例使用struct v4l2_device结构体表示,v4l2_device是V4L2子系统的入口,管理着V4L2子系统的主设备和从设备。简单设备可以仅分配这个结构体,但在大多数情况下,都会将这个结构体嵌入到一个更大的结构体中。需要与媒体框架整合的驱动必须手动设置dev->driver_data,指向包含v4l2_device结构体实例的驱动特定设备结构体。这可以在注册V4L2设备实例前通过dev_set_drvdata()函数完成。同时必须设置v4l2_device结构体的mdev域,指向原创 2021-03-19 08:41:05 · 2058 阅读 · 0 评论 -
linux V4L2子系统——v4l2的结构体(2)之video_device
Video设备使用struct video_device结构体表示。设备的操作方法由fops和ioctl_ops函数指针集合指定,fops是文件操作方法,实现常见的open、read、write方法,ioctl_ops实现应用层的ioctl函数,功能较多。原创 2021-03-19 08:40:23 · 3040 阅读 · 0 评论