SoC 供应商对媒体资源管理器的依赖关系

本文档旨在帮助芯片上系统供应商 (SoC) 正确实现对 Android 媒体资源管理器所需的优先级、运行速率和挂钩的支持。

OMX_ErrorInsufficientResources

如果故障是由于资源不足导致的,则编解码器组件应在 GetHandleInitUseBufferAllocateBuffer 或状态转换时返回 OMX_ErrorInsufficientResources。媒体资源管理器将使用此错误代码作为指示符,以潜在地抢占来自其他较低优先级进程的媒体资源。

存在 Android 兼容性测试套件 (CTS) 测试,用于重复分配、配置和启动每个编解码器,直到 捕获 OMX_ErrorInsufficientResources(通过)或任何其他错误(失败)为止。

OMX_IndexConfigPriority

此配置允许应用描述所需的编解码器优先级。

关联值是一个整数。值越高表示优先级越低。目前,仅支持两个级别

  • 0:实时优先级 - 表示编解码器应在实时状态下支持给定的性能配置(例如,帧率)。这仅供媒体播放、捕获以及实时通信场景(如果尽力而为的性能不合适)使用。
  • 1:非实时优先级(尽力而为)。这是默认值。

建议供应商将其用作编解码器配置和资源规划期间使用的提示,以了解应用的实时要求。

除非配置为 0,否则不要假定为实时优先级。

OMX_IndexConfigOperatingRate

此配置允许应用描述视频的运行帧率或音频的采样率,编解码器需要以该速率运行。

这用于高速/慢动作视频捕获等情况,其中视频编码器格式包含目标回放速率(例如 30fps),但组件必须能够处理高操作捕获速率(例如 240fps)。

此速率应用于资源规划和设置工作点。