媒體資源管理器的 SoC 供應商依賴性

本文檔旨在幫助片上系統供應商 (SoC) 正確實現對 Android 媒體資源管理器所需的優先級、運行速率和掛鉤的支持。

1. OMX_ErrorInsufficientResources

如果失敗是由於資源不足,編解碼器組件應在GetHandleInitUseBufferAllocateBuffer或狀態轉換上返回OMX_ErrorInsufficientResources 。錯誤代碼將被媒體資源管理器用作指示符,以潛在地從其他較低優先級進程中搶占媒體資源。

存在一個 Android 兼容性測試套件 (CTS) 測試來重複分配、配置和啟動每個編解碼器,直到catching OMX_ErrorInsufficientResources (通過)或任何其他錯誤(失敗)。

2. OMX_IndexConfigPriority

此配置允許應用程序描述所需的編解碼器優先級。

關聯的值是一個整數。較高的值意味著較低的優先級。目前只支持兩個級別:

  • 0:實時優先級——意味著編解碼器應實時支持給定的性能配置(例如幀速率)。如果盡力而為性能不合適,這將僅用於媒體播放、捕獲以及可能的實時通信場景。
  • 1:非實時優先級(盡力而為)。這是默認值。

建議供應商將此用作編解碼器配置和資源規劃的提示 - 以了解應用程序的實時要求。

不要假設實時優先級,除非它被配置為 0。

3. OMX_IndexConfigOperatingRate

此配置允許應用程序描述編解碼器需要運行的視頻的操作幀速率或音頻的採樣率。

這用於高速/慢動作視頻捕獲等情況,其中視頻編碼器格式包含目標播放速率(例如 30fps),但組件必須能夠處理高操作捕獲速率(例如 240fps)。

此速率應用於資源規劃和設置操作點。