V4L2视频驱动框架---meida_device管理模块简述

​ v4l2框架由4个主要的部分(数据结构)组成:
v4l2_devices(包括v4l2_subdev) :v4l2_device管理所有的设备
media_device : meida_device框架管理运行时的pipeline
videobuf2:videobuf存储缓冲的数据
controls :controls包含主要控制接口


理解:
media framework 的引入是为了 将各个 subdev 抽象为单独的模块,并将各个模块以管道的概念连接起来,从而组装成一个完整的数据流。 media framework 就是为了可以方便的抽象并连接自己想要的模块,组成自己想要的数据流。

作用
提供实时的 pipeline 管理,pipeline 就理解为管道,想象一下水管,里面的水就是数据流,输入设备中的 csi->isp->video 就组成一个 pipeline 线路。media framework 提供 pipeline 的开启、关停、效果控制、节点控制等功能。

说明
内核当中主要利用四个结构体把众多的节点组织起来: media_device ,media_entity, media_link ,media_pad 。整个 media framework 都围绕这四个结构体来进行使用的,下文会对这些进行详细介绍。

1、media_entity:硬件设备模块抽象(类比电路板上面的各个元器件、芯片)

2、media_pad :硬件设备端口抽象(类比元器件、芯片上面的管脚)

3、media_link :硬件设备的连接抽象,link 的两端是 pad(类比元器件管脚之间的连线)

media_entity、media_pad、media_link等结构体会添加到media_device的链表中,同时它们结构体的开始字段都需是struct media_gobj,该结构中的mdev将会指向它所属的media_device。这种设计方便结构之间的查找;

media_entity中包含多个media_pad,同时media_pad又会指向它所属的media_entity;

#------------#                #------------#
|          __|__            __|__          |
|         |  |  |   link   |  |  |         |
|         | pad |<-------->| pad |         |
|         |__|__|          |__|__|         |
|            |                |            |
|   entity   |                |   entity   |
#------------#                #------------# 

可以想象一下,如果各个 entity 之间需要建立连接的话,就需要在 pad 中存储 link 以及 entity 信息,link 中需要存储 pad 与 entity 信息,entity 里面需要存储 link 与 pad 信息,属于你中有我,我中有你的情况。

4、media_device: 与v4l2_device类似,也是负责将各个子模块集中进行管理,同时在注 册的时候,会向系统注册设备节点,方便用户层进行操作

media_device 主要有下面几个部件构成:

media_entity :media_device基本构件块
media_pad:pad是一个连接端点,通过它可以保证entity之间通信,pad分source pad和sink pad
media_link:link在两个pad之间定向连接,数据由source pad 流向 sink pad

					  
|---------------------------------------------------------------|		
|			         media_device(多媒体设备)                   |
|																|
|		#------------#                #------------#            |
|		|          __|__            __|__          |            |
|		|         |  |  |   link   |  |  |         |            |
|		|         | pad |<-------->| pad |         |            |
|		|         |__|__|          |__|__|         |            |
|		|            |                |            |            |
|		|   entity   |                |   entity   |            |
|		#------------#                #------------#            |
|		                                                        |
|		                                                        |
|---------------------------------------------------------------|
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 当安装CentOS后出现"no media"的错误提示时,通常是由于安装源配置不正确或无法访问导致的。根据引用\[1\]中提到的信息,CentOS 8已于2021年12月31日结束生命周期,因此无法从官方源地址下载安装文件。这可能是导致无法找到安装媒体的原因之一。 为了解决这个问题,你可以尝试以下方法: 1. 检查你的网络连接是否正常,确保能够访问互联网。 2. 检查你的安装源配置是否正确。你可以尝试修改安装源地址为可用的镜像源,以确保能够下载安装文件。你可以参考引用\[2\]中提供的CentOS 7安装镜像下载链接来获取可用的安装镜像。 3. 如果你需要安装中文输入法,你可以按照引用\[3\]中提到的方法,在系统安装完成后使用yum命令安装中文输入法。 希望以上方法能够帮助你解决安装CentOS后出现"no media"的问题。如果问题仍然存在,请提供更多详细信息以便我们能够更好地帮助你。 #### 引用[.reference_title] - *1* *3* [vm虚拟机安装CentOS8.2服务器系统](https://blog.csdn.net/qq21497936/article/details/123428510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vmware 安装 centos](https://blog.csdn.net/weixin_45630258/article/details/125070170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux老A

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值