Этот документ предназначен для того, чтобы помочь поставщикам процессоров (SoC) правильно реализовать поддержку приоритета, рабочей скорости и хуков, необходимых для менеджера медиаресурсов Android.
OMX_ErrorInsufficientResources
Компонент кодека должен возвращать OMX_ErrorInsufficientResources в GetHandle, Init, UseBuffer, AllocateBuffer или при переходе между состояниями, если сбой вызван нехваткой ресурсов. Менеджер медиаресурсов будет использовать код ошибки как индикатор того, что медиаресурс может быть вытеснен другим процессом с более низким приоритетом.
В Android Compatibility Test Suite (CTS) есть тест, который многократно выделяет, настраивает и запускает каждый кодек, пока не будет получен результат catching
OMX_ErrorInsufficientResources (пройдено) или другая ошибка (не пройдено).
OMX_IndexConfigPriority
Эта конфигурация позволяет приложению задавать приоритет кодеков.
Связанное значение является целым числом. Чем выше значение, тем ниже приоритет. В настоящее время поддерживается только два уровня:
- 0 – приоритет реального времени. Это означает, что кодек должен поддерживать заданную конфигурацию производительности (например, частоту кадров) в реальном времени. Этот режим будет использоваться только для воспроизведения и записи медиаконтента, а также, возможно, для связи в реальном времени, если производительность по умолчанию окажется недостаточной.
- 1 – приоритет не в реальном времени (наилучший результат). Это значение по умолчанию.
Поставщику рекомендуется использовать это значение в качестве подсказки при настройке кодека и планировании ресурсов, чтобы понимать требования приложения к работе в реальном времени.
Не предполагайте, что приоритет в реальном времени установлен, если он не настроен на 0.
OMX_IndexConfigOperatingRate
Эта конфигурация позволяет приложению описать рабочую частоту кадров для видео или частоту дискретизации для аудио, на которой должен работать кодек.
Это используется в таких случаях, как высокоскоростная/замедленная видеосъемка, когда формат видеокодера содержит целевую скорость воспроизведения (например, 30 кадров в секунду), но компонент должен быть способен обрабатывать высокую рабочую скорость захвата (например, 240 кадров в секунду).
Этот показатель следует использовать для планирования ресурсов и определения рабочих точек.