正文

18.1 OpenMax系統(tǒng)結(jié)構(gòu)和移植內(nèi)容(4)

Android系統(tǒng)級(jí)深入開(kāi)發(fā):移植與調(diào)試 作者:韓超


如圖18-4所示,OpenMAL IL的客戶端,通過(guò)調(diào)用四個(gè)OpenMAL IL組件,實(shí)現(xiàn)了一個(gè)功能。四個(gè)組件分別是Source組件、Host組件、Accelerator組件和Sink組件。Source組件只有一個(gè)輸出端口;而Host組件有一個(gè)輸入端口和一個(gè)輸出端口;Accelerator組件具有一個(gè)輸入端口,調(diào)用了硬件的編解碼器,加速主要體現(xiàn)在這個(gè)環(huán)節(jié)上。Accelerator組件和Sink組件通過(guò)私有通訊方式在內(nèi)部進(jìn)行連接,沒(méi)有經(jīng)過(guò)明確的組件端口。

OpenMAL IL在使用的時(shí)候,其數(shù)據(jù)流也有不同的處理方式:既可以經(jīng)由客戶端,也可以不經(jīng)由客戶端。圖18-4中,Source組件到Host組件的數(shù)據(jù)流就是經(jīng)過(guò)客戶端的;而Host組件到Accelerator組件的數(shù)據(jù)流就沒(méi)有經(jīng)過(guò)客戶端,使用了隧道化的方式;Accelerator組件和Sink組件甚至可以使用私有的通訊方式。

OpenMax Core是輔助各個(gè)組件運(yùn)行的部分,它通常需要完成各個(gè)組件的初始化等工作,在真正運(yùn)行過(guò)程中,重點(diǎn)的是各個(gè)OpenMax IL的組件,OpenMax Core不是重點(diǎn),也不是標(biāo)準(zhǔn)。

OpenMAL IL的組件是OpenMax IL實(shí)現(xiàn)的核心內(nèi)容,一個(gè)組件以輸入、輸出端口為接口,端口可以被連接到另一個(gè)組件上。外部對(duì)組件可以發(fā)送命令,還進(jìn)行設(shè)置/獲取參數(shù)、配置等內(nèi)容。組件的端口可以包含緩沖區(qū)(Buffer)的隊(duì)列。

組件的處理的核心內(nèi)容是:通過(guò)輸入端口消耗Buffer,通過(guò)輸出端口填充Buffer,由此多組件相聯(lián)接可以構(gòu)成流式的處理。


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)