Entities、pads、links 实体、垫、链接

Entities:
1.实体由一个struct media_entity实例表示。结构通常嵌入到一个较高级别的结构,例如v4l2_subdev或video_device实例,虽然驱动程序
可以直接分配实体。
2.驱动程序初始化实体
media_entity_init(struct media_entity *entity, u16 num_pads,struct media_pad *pads, u16extra_links);
驱动向媒体设备注册实体:
media_device_register_entity(structmedia_device *mdev, struct media_entity*entity);
驱动程序注销实体:
media_device_unregister_entity(structmedia_entity *entity);
驱动程序释放与实体相关联的资源:
media_entity_cleanup(structmedia_entity * entity);

①可以在调用media_entity_init之前或之后初始化media_entity的name,type,flags,revision和group_id字段。嵌入在较高级别标准结构中的
实体可以具有由较高级别框架设置其中的某些字段。
②由于pad的数目是预先已知的,所以pad阵列不是动态分配的,而是由实体驱动器管理。大多数驱动程序会将驱动程序阵列嵌入到驱动程序特
定的结构中,从而避免动态分配。
③驱动程序必须在调用media_entity_init之前设置pad数组中每个pad的方向。该功能将初始化其他pad字段。
④与pad的数量不同,链接的总数不总是由实体驱动程序预先知道。作为初始估计,media_entity_init预分配等于衬垫数量的链路数量加上可
选数量的额外链路。如果链路数组增长超过初始估计,它将被重新分配。
⑥实体由唯一的正整数ID标识。 驱动程序可以在注册之前填充media_entity id字段来提供ID,或者请求媒体控制器框架自动分配ID。手动提
供ID的驱动程序必须确保所有ID是唯一的。ID不能保证是连续的,即使它们都由框架自动分配。
⑦注销实体不会更改其他实体的ID,并且ID将永远不会重新用于新注册的实体。当媒体设备未注册时,其所有实体都将自动取消注册。不需要手
动实体注销。
⑧在注销实体后,必须在清除阶段调用media_entity_cleanup函数。请注意,如果需要,驱动程序必须显式释放media_entity实例本身。
⑨实体具有描述实体能力和状态的标志,eg.MEDIA_ENT_FL_DEFAULT:表示给定类型的默认实体。这可用于报告默认的音频和视频设备或默认
相机传感器。
逻辑实体组可以通过将所有成员实体的组ID设置为相同的非零值来定义。实体组在内核中不起作用,但在实体枚举期间会报告给用户空间。
group_id字段属于媒体设备驱动程序,且不能由实体驱动程序触摸。
10.如果几个实体在逻辑上绑定在一起,媒体设备驱动程序应该定义组。eg
- 携带相同媒体流的ALSA,VBI和视频节点
- 与传感器相关联的透镜和闪光控制器

Pads:
pad由一个struct media_pad实例表示,每个实体将其焊盘存储在由实体驱动器管理的焊盘阵列中。驱动程序通常将数组嵌入到驱动程序特定
的结构中。
pads由其实体和其在pads阵列中的基于0的索引来标识。这两个信息都存储在media_pad结构中,使media_pad指针可以存储和传递链接引用的
规范方式。
pads具有描述pad的能力和状态的标志:
MEDIA_PAD_FL_SINK 表示该pad支持目标数据。
MEDIA_PAD_FL_SOURCE 表示该pad支持源数据。
必须为每个pad设置MEDIA_PAD_FL_SINK和MEDIA_PAD_FL_SOURCE中的一个且仅有一个。

Links:
链接由struct media_link实例表示。每个实体存储源自或针对链路阵列中的任何其pads的所有链路。因此,给定link被存储两次,一次在
源实体中,一次在目标实体中。数组是预分配并根据需要动态增长。
驱动程序创建链接:
media_entity_create_link(struct media_entity *source, u16source_pad,struct media_entity*sink, u16 sink_pad,u32 flags);

每个实体的链接阵列中的条目被分配并且存储指向源和接收pads的指针。

链接具有描述链接能力和状态的标志:
MEDIA_LNK_FL_ENABLED 表示链接已启用,可用于传输媒体数据。当两个或更多链路以接收器焊盘为目标时,每次只能启用其中一个。
MEDIA_LNK_FL_IMMUTABLE 指示无法在运行时修改链接启用状态。如果设置MEDIA_LNK_FL_IMMUTABLE,则由于始终启用不可变链接,因此也
必须设置MEDIA_LNK_FL_ENABLED。

Entities、pads、links 实体、垫、链接的更多相关文章

  1. EF实体实现链接字符串加密

    1.加密解密方法 using System;using System.Security.Cryptography; using System.Text;namespace DBUtility{ /// ...

  2. Umbraco中使用Related Links显示内部链接和外部链接

    在Umbraco的论坛里看到的办法,演示了如何在Umbraco中使用Related Links并显示的过程. 原文地址:http://www.nibble.be/?p=48

  3. HTML字符实体(Character Entities),转义字符串(Escape Sequence)

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  4. HTML字符实体(Character Entities),转义字符串(Escape Sequence)【转】

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  5. HTML字符实体(Character Entities),转义字符串(Escape Sequence) 转

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  6. [转]HTML字符实体(Character Entities),转义字符串(Escape Sequence)

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  7. html 和 html5(一)(表格 | 列表 | 提交按钮 | 单选 |复选 | 框架 | 脚本 | html字符实体 )

    一.框架 使用iframe来显示目录链接页面 iframe可以显示一个目标链接的页面 目标链接的属性必须使用iframe的属性,如下实例: 实例 <iframe src="demo_i ...

  8. java转换 HTML字符实体,java特殊字符转义字符串

    为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希 ...

  9. EF Core 2.0中如何手动映射数据库的视图为实体

    由于Scaffold-DbContext指令目前还不支持自动映射数据库中的视图为实体,所以当我们想使用EF Core来读取数据库视图数据的时候,我们需要手动去做映射,本文介绍如何在EF Core中手动 ...

随机推荐

  1. JDBC 与 Bean Shell的使用(一)获取值,并且传递

    1.在使用Jmeter进行接口测试的时候,会使用到JDBC,连接数据库,操作数据库其得到的数据后续操作需要使用,这里我们使用了BeanShell的概念来获取JDBC的返回值 如下说明了联合使用的2种方 ...

  2. Confluence 6 设置公共访问备注

    你不能为匿名用户赋予空间管理员或者限制权限. 你可以让用户自行注册你的 Confluence 站点,同时也可以选择其他的用户注册选项,比如邀请用户注册等.请查看:Add and Invite User ...

  3. Asp.Net中的sessionState设置

    在web.config中有sessionState的节点配置,sessionState共有4中模式:off,inProc,StateServer,SqlServer. 1. off模式 关闭模式,如果 ...

  4. 微信公众号开发之如何一键导出微信所有用户信息到Excel

    微信开发交流群:148540125 系列文章参考地址 极速开发微信公众号欢迎留言.转发.打赏 项目源码参考地址 点我点我--欢迎Start 极速开发微信公众号系列文章之如何一键导出微信所有用户信息到E ...

  5. 84. Largest Rectangle in Histogram *HARD* -- 柱状图求最大面积 85. Maximal Rectangle *HARD* -- 求01矩阵中的最大矩形

    1. Given n non-negative integers representing the histogram's bar height where the width of each bar ...

  6. 折叠菜单slideUp

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. IOS7 UI设计的十大准则

    陈子木 iOS7 的用户界面设计比以往更卓越,并为用户提供了更具吸引力的独特体验,带来更大的机遇.在正式写代码之前,认真考虑UI设计是否符合这十条设计准则,可以提高App的可用性与吸引力.如果要更深入 ...

  8. http1.0 1.1 2.0区别

    http1.0 1.1 2.0区别 转载:https://blog.csdn.net/linsongbin1/article/details/54980801/ 1.HTTP1.0 1.1区别 (1) ...

  9. Transfer files Using sshpass

    #! /bin/bash user=root password=12345678 remote_ip=192.168.3.140 remote_dir=/usr/bin/ local_file_dir ...

  10. Android如何打印std::cout/printf(重定向stdout)

    Android应用调试时没有stdout和stderr的输出,网上看到的解释都是下面这个样子: ################################################# An ...