其他合成方式介紹

在 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.pswp.cn/news/900489.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900489.shtml
英文地址,請注明出處:http://en.pswp.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關鍵字是最終的意思,可以修飾類、方法、變量。 修飾類:…