其他合成方式介绍

在 SurfaceFlinger 的 Layer 处理逻辑中,除了常见的 Client Composition(GPU合成)Device Composition(HWC合成),还存在一些特殊的合成方式,比如 Sideband、Solid Color 和 Display Decoration。这些都是通过 CompositionType 进行区分的:


 Sideband Composition(旁路流 Sideband 流)

🔹 定义

  • 这是一种 外部流输入(Sideband Stream) 的合成方式,通常用于 低延迟的多媒体流(例如 IPTV、外部解码器视频)。

  • 数据源不是常规的 Graphic Buffer,而是一个 Sideband Stream,它会通过 sideband stream 字段传递,而不是 buffer

🔹 常见应用

  • 硬件视频解码器(比如 MediaTek、Qualcomm 等方案的 Zero-Copy 视频)

  • Wi-Fi Display(Miracast 无线投屏)

  • 低延迟视频流,比如 IPTV 播放

🔹 Dumpsys 里的表现

buffer: buffer=0x0
sideband stream=0xb40000770a9efe60
  • buffer=0x0:表示这个 Layer 没有普通的 GraphicBuffer,而是依赖 sideband stream

  • sideband stream:表示该 Layer 绑定了一个 外部数据流,SurfaceFlinger 不会自己合成,而是交由 HWC 处理。


2️⃣ Solid Color Composition(纯色填充)

🔹 定义

  • 用于绘制 纯色 Layer,通常用于 UI 组件,比如背景、蒙版等,不需要绑定 Buffer。

  • 颜色信息存储在 color 字段,而不是 buffer

🔹 常见应用

  • 透明遮罩(比如暗淡背景层)

  • 渐变背景(如果不使用着色器的话)

  • 系统 UI(比如通知栏背景)

🔹 Dumpsys 里的表现

buffer: buffer=0x0
color=[0.000000 0.000000 0.000000] 
  • buffer=0x0:这个 Layer 不使用 Buffer,直接填充颜色。

  • color=[R G B]:RGB 颜色值(范围 0.0 - 1.0)。


3️⃣ Display Decoration(显示装饰)

🔹 定义

  • 这是 专门用于系统装饰的 Layer,通常和 圆角裁剪(Rounded Corners)、水滴屏(Notch)、屏下指纹动画 相关。

  • 这些 Layer 通常不会参与普通应用的合成,而是专门用于屏幕的 UI 效果。

🔹 常见应用

  • 屏幕圆角遮罩

  • 挖孔屏的 UI 裁剪

  • 屏下指纹动画

  • Always-On Display(AOD,息屏显示)

🔹 Dumpsys 里的表现

* Layer 0xb40000776aa87410 (Display Overlays#65)
  • 这个 Layer 一般和 Display Overlays 相关,是 SurfaceFlinger 额外创建的系统 UI 组件。

  • 可能包含特殊的 Dataspace(比如 Dataspace::DISPLAY_DECORATION)。


总结

Composition 类型描述典型应用是否绑定 Buffer
Sideband Composition旁路流输入,直接由 HWC 处理硬件解码视频流(IPTV、Wi-Fi Display)❌ 绑定 sideband stream
Solid Color Composition纯色填充UI 背景、透明蒙版❌ 绑定 color
Display Decoration系统 UI 装饰圆角、挖孔、水滴屏、AOD✅ 可能绑定特殊 Buffer

实际上一般的Video硬解播放也不会走sideband stream,可能只能tunnel mode才会走。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/900489.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GraphRAG与知识图谱

一、GraphRAG介绍 1.1 什么是 Graph RAG? Graph RAG(Retrieval-Augmented Generation),是一种基于知识图谱的检索增强技术, 通过构建图模型的知识表达,将实体和关系之间的联系用图的形式进行展示&#xff…

一个开源的 VS Code 大模型聊天插件:Light-at

这篇文章是一个开发杂谈。对于有经验的开发者来说,可能这个项目并不算特别复杂或者高技术,只是对我个人来说算一个里程碑,因此写篇杂谈文章记录一下。也许也能给起步者一些参考。 项目地址:https://github.com/HiMeditator/light-…

SQL121 创建索引

-- 普通索引 CREATE INDEX idx_duration ON examination_info(duration);-- 唯一索引 CREATE UNIQUE INDEX uniq_idx_exam_id ON examination_info(exam_id);-- 全文索引 CREATE FULLTEXT INDEX full_idx_tag ON examination_info(tag);描述 现有一张试卷信息表examination_in…

【Pandas】pandas DataFrame set_flags

Pandas2.2 DataFrame Attributes and underlying data 方法描述DataFrame.index用于获取 DataFrame 的行索引DataFrame.columns用于获取 DataFrame 的列标签DataFrame.dtypes用于获取 DataFrame 中每一列的数据类型DataFrame.info([verbose, buf, max_cols, …])用于提供 Dat…

Linux终止进程(kill process)的一些玩法

经常运行一个程序时,表面上已经终止了,实际上还在后台运行。一来呢,它可能占据端口,导致端口复用的时候报错。二来呢,它可能占用GPU,让你显存直接少一块。 尤其是在多进程程序,假如运行“python…

《比特城传奇:公钥、私钥与网络安全的守护之战》

点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万阅读 1.6万收藏 第一章:双钥之谜 比特城的清晨总是笼罩着一层薄雾,仿佛这座城市本身就是由无数个0和1编织而成的幻境。在这里,信息如同空气般无处不在,但…

BGP路由协议之属性1

公认属性是所有 BGP 路由器都必须能够识别的属性 公认必遵 (Well-known Mandatory) : 必须包括在每个 Update 消息里公认任意 (Well-known Discretionary) : 可能包括在某些 Update 消息里。 可选属性不需要都被 BGP 路由器所识别 可选过渡(OptionalTransitive) : BGP 设备不…

Pr视频剪辑 Premiere Pro 2024 for Mac

Pr视频剪辑 Premiere Pro 2024 for Mac 文章目录 Pr视频剪辑 Premiere Pro 2024 for Mac一、介绍二、效果三、下载 一、介绍 Premiere Pro 2024 for Mac是一款专业的视频编辑软件,广泛应用于电影、电视、广告等领域。它为Mac用户提供了强大的剪辑、调色、音频处理等…

oracle 包的管理

在PL/SQL程序开发中,为了方便实现模块化程序的管理,可以将PL/SQL元素(如存储过程、函数、变量、常量、自定义数据类型、游标等)根据模块的程序结构组织在一起,存放在一个包中,称为一个完整的单元&#xff0…

LINUX 5 cat du head tail wc 计算机拓扑结构 计算机网络 服务器 计算机硬件

计算机网络 计算机拓扑结构 计算机按性能指标分:巨型机、大型机、小型机、微型机。大型机、小型机安全稳定,小型机用于邮件服务器 Unix系统。按用途分:专用机、通用机 计算机网络:局域网‘、广域网 通信协议’ 计算机终端、客户端…

从零开始的图论讲解(1)——图的概念,图的存储,图的遍历与图的拓扑排序

目录 前言 图的概念 1. 顶点和边 2. 图的分类 3. 图的基本性质 图的存储 邻接矩阵存图 邻接表存图 图的基本遍历 拓扑排序 拓扑排序是如何写的呢? 1. 统计每个节点的入度 2. 构建邻接表 3. 将所有入度为 0 的节点加入队列 4. 不断弹出队头节点,更新其…

强化学习Q-Learning:DQN

强化学习Q-Learning/DQN 本文是一篇学习笔记,主要参考李宏毅老师的强化学习课程。 目前主流的强化学习方法大致可以分为 policy-based 和 value-based 两大类。之前我们介绍的 policy gradient 策略梯度,就是 policy-based 的方法。本文要介绍的 Q-learn…

W公司云安全解决方案

1 安全理念DevOpvSec 统一安全运营 2 安全责任分层模型 3 云安全产品线 4 云安全解决方案/部署架构 5 安全能力 6 信创云平台适配 7 统一化安全运营 利用云安全平台实现统一的安全运维 8 安全资源池的统一纳管 9 案例分享:私有云 10 云安全解决方案的衍生特点 11 …

python中的in关键字查找的时间复杂度

列表(List) 对于列表来说, in 运算符的复杂度是 O(n),其中n是列表的长度。这意味着如果列表中有n个元素,那么执行 in 运算符需要遍历整个列表来查找目标元素。 以下是一个示例,演示了在列表中使用 in 运算…

MySQL基础 [一] - Ubuntu版本安装

目录 预安装 先查看自己操作系统的版本 添加MySQL APT下载源 下载 安装 正式安装 查看MySQL状态 打开MySQL 预安装 先查看自己操作系统的版本 lsb_release -a 添加MySQL APT下载源 下载 下载发布包 下载地址 : https://dev.mysql.com/downloads/repo/apt/ 这里下…

Springboot整合Mybatis+Maven+Thymeleaf学生成绩管理系统

前言 该系统为学生成绩管理系统,可以当作学习参考,也可以成为Spirng Boot初学者的学习代码! 系统描述 学生成绩管理系统提供了三种角色:学生,老师,网站管理员。主要实现的功能如下: 登录 &a…

操作系统之文件系统

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

AG32:MCU和CPLD如何交互?

本文档介绍了AG32开发中,MCU与CPLD交互的具体方式以及例子。如需了解AG32更多资料可发邮件:salesagm-micro.com 一、MCU和CPLD直接交互 cpld工程创建及编译的操作流程,参考文档《AG32下fpga和cpld的使用入门》 在工程中,用户逻辑…

机器人轨迹跟踪控制——CLF-CBF-QP

本次使用MATLAB复现CLF-CBF-QP算法,以实现机器人轨迹跟踪同时保证安全性能 模型 使用自行车模型来进行模拟机器人的移动动态,具体的模型推导参考车辆运动学模型-自行车模型 采用偏差变量 p ~ = p − p r e f u ~ = u − u r e f \tilde{p} = p - p_{ref} \\ \tilde{u} = …

009_抽象类和接口

抽象类和接口 final关键字常量 单例模式(设计模式)枚举类抽象类抽象类的注意事项、特点使用抽象类的好处模版方法设计模式 接口接口的好处接口的注意事项 final关键字 final关键字是最终的意思,可以修饰类、方法、变量。 修饰类:…