媒體資源管理工具的 SoC 供應商依附元件

本文件旨在協助晶片系統 (SoC) 供應商正確實作 Android 媒體資源管理工具所需的優先順序、運作率和掛鉤。

OMX_ErrorInsufficientResources

如果失敗是因為資源不足,編解碼器元件應在 GetHandleInitUseBufferAllocateBuffer 或狀態轉換中傳回 OMX_ErrorInsufficientResources。媒體資源管理工具會使用錯誤代碼做為指標,以便從其他優先順序較低的程序中搶先取得媒體資源。

有一個 Android Compatibility Test Suite (CTS) 測試,可分配、設定及啟動每個編解碼器,直到 catching OMX_ErrorInsufficientResources (通過) 或任何其他錯誤 (失敗) 為止。

OMX_IndexConfigPriority

這項設定可讓應用程式說明所需的編解碼優先順序。

關聯值為整數。值越高,優先順序越低。目前只支援兩個層級:

  • 0:即時優先順序 - 表示編解碼應在即時支援指定效能設定 (例如影格速率)。這項功能只會用於媒體播放、擷取,以及在最佳努力效能不合適的情況下,可能用於即時通訊情境。
  • 1:非即時優先順序 (盡力處理)。這是預設值。

建議供應商將此值做為編碼器設定和資源規劃時使用的提示,以便瞭解應用程式的即時需求。

除非已將即時優先順序設為 0,否則請勿假設即時優先順序。

OMX_IndexConfigOperatingRate

這項設定可讓應用程式說明影片的運作影格速率,或音訊的取樣率,以便編解碼器運作。

這類情況包括高速度/慢動作影片擷取,其中影片編碼器格式包含目標播放速率 (例如 30fps),但元件必須能夠處理高運作擷取速率 (例如 240fps)。

這項費率應用於資源規劃和設定運作點。