本文档旨在帮助芯片上系统供应商 (SoC) 正确实现对 Android 媒体资源管理器所需的优先级、运行速率和挂钩的支持。
OMX_ErrorInsufficientResources
如果故障是由于资源不足导致的,则编解码器组件应在 GetHandle
、Init
、UseBuffer
、AllocateBuffer
或状态转换时返回 OMX_ErrorInsufficientResources
。媒体资源管理器将使用此错误代码作为指示符,以潜在地抢占来自其他较低优先级进程的媒体资源。
存在 Android 兼容性测试套件 (CTS) 测试,用于重复分配、配置和启动每个编解码器,直到 捕获 OMX_ErrorInsufficientResources
(通过)或任何其他错误(失败)为止。
OMX_IndexConfigPriority
此配置允许应用描述所需的编解码器优先级。
关联值是一个整数。值越高表示优先级越低。目前,仅支持两个级别
- 0:实时优先级 - 表示编解码器应在实时状态下支持给定的性能配置(例如,帧率)。这仅供媒体播放、捕获以及实时通信场景(如果尽力而为的性能不合适)使用。
- 1:非实时优先级(尽力而为)。这是默认值。
建议供应商将其用作编解码器配置和资源规划期间使用的提示,以了解应用的实时要求。
除非配置为 0,否则不要假定为实时优先级。
OMX_IndexConfigOperatingRate
此配置允许应用描述视频的运行帧率或音频的采样率,编解码器需要以该速率运行。
这用于高速/慢动作视频捕获等情况,其中视频编码器格式包含目标回放速率(例如 30fps),但组件必须能够处理高操作捕获速率(例如 240fps)。
此速率应用于资源规划和设置工作点。