2. 媒体设备模型

发现设备内部拓扑结构并在运行时配置它是媒体控制器 API 的目标之一。为了实现这一点,硬件设备和 Linux 内核接口被建模为有向图上的图对象。构成图的对象类型包括

  • 一个实体 (entity)是基本的媒体硬件或软件构建块。它可以对应多种逻辑块,例如物理硬件设备(例如 CMOS 传感器)、逻辑硬件设备(片上系统图像处理管道中的构建块)、DMA 通道或物理连接器。

  • 一个接口 (interface)是 Linux 内核用户空间 API 接口的图表示,例如控制图中一个或多个实体的设备节点或 sysfs 文件。

  • 一个端口 (pad)是一个数据连接端点,通过它一个实体可以与其他实体交互。实体产生的数据(不限于视频)从实体的输出流向一个或多个实体输入。端口不应与芯片边界上的物理引脚混淆。

  • 一个数据链路 (data link)是两个端口之间的点对点有向连接,这些端口可以在同一个实体上,也可以在不同的实体上。数据从源端口流向接收端口。

  • 一个接口链路 (interface link)是 Linux 内核接口与实体之间的点对点双向控制连接。

  • 一个辅助链路 (ancillary link)是一种点对点连接,表示两个实体构成一个单一逻辑单元。例如,这可以表示某个特定的摄像头传感器和镜头控制器形成一个单一的物理模块,这意味着该镜头控制器驱动此摄像头传感器的镜头。