linux v4l2 摄像头驱动 - video 视频流处理框架
V4L2(Video for Linux 2) 是 Linux 操作系统中的视频驱动框架, 它为视频设备提供了统一的处理接口. 本文基于内核版本 Linux 4.4.94+
分析 linux 视频驱动框架. 它包括以下内容.
- /dev/videoX 视频流处理框架
- /dev/v4l-subdevX 的子设备框架
- V4L2 异步通知系统
- Media Controller 框架
/dev/videoX 节点对应的设备后续会称为 video 设备和 video 框架. /dev/v4l-subdevX 节点对应的设备则称为 subdev 设备和 subdev 框架. 无论是 video 设备还是 subdev 设备, 都是通过 v4l2_device 进行统一管理. video 设备和 subdev 设备 的整体框架如下所示.

注意: video 指代的是 /dev/videoX 节点对应的设备, 而不是内核中的 video_deivce 数据结构. 这个数据结构无论是 video 设备还是 subdev 设备都用到了.