V4L2子系统框架介绍

本文介绍了Linux内核驱动中的V4L2子系统,主要关注视频输入设备,特别是摄像头。内容包括V4L2框架图,展示了应用程序如何通过V4L2 API获取底层硬件图像数据。视频设备的控制通过video_device结构体,而sensor芯片和其他外围芯片作为v4l2_subdev子设备。此外,还概述了V4L2内核空间的代码分布,包括video_device的实现、sensor驱动和解码芯片驱动。V4L2的核心代码提供了设备注册、注销接口以及videobuf管理、ioctl框架等功能。
摘要由CSDN通过智能技术生成

序言

    本系列文章主要介绍Linux内核驱动中的V4L2子系统框架,基于Linux4.14.35内核中的相关代码来介绍。 

1.V4L2框架图

    V4L2目前主要支持以下几类设备:视频输入设备(重点)、视频输出设备、VBI设备和radio设备,其中作为视频输入设备使用的最广泛,主要是应用在摄像头上。下面主要以视频输入设备(摄像头)来介绍。

  如下图所示,展示了V4L2子系统中应用层程序(调用标准的V4L2 API)和内核空间的V4L2相关驱动以及底层硬件(包括摄像头,SOC端视频捕获模块,以及由SOC端I2C控制的外围芯片(较常见的是一些视频解码器芯片如adv7482和解串芯片如美信max9286等))之间的联系。其实就是调用标准的V4L2 API的应用程序是如何拿到从底层硬件过来的图像数据的过程。

    。

    其中video_device结构体主要用来控制Soc端的视频捕获模块,SOC端的CSI2硬件接口模块,sensor芯片,以及其他的由SOC通过I2C控制的芯片都是作为v4l2_device下的v4l2_subdev子设备,v4l2_device是v4l2_subdev的父设备,它下面一般会有多个v4l2_subdev子设备。

 

2.V4L2内核空间代码介绍

   vi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值