Зависимости поставщиков SoC для менеджера медиаресурсов

Цель этого документа – помочь поставщикам систем на кристалле (SoC) правильно реализовать поддержку приоритета, рабочей скорости и перехватчиков, необходимых для диспетчера медиаресурсов Android.

OMX_ErrorInsufficientResources

Компонент кодека должен возвращать OMX_ErrorInsufficientResources при GetHandle , Init , UseBuffer , AllocateBuffer или переходе состояния, если сбой вызван нехваткой ресурсов. Код ошибки будет использоваться менеджером медиа-ресурсов в качестве индикатора потенциального вытеснения медиа-ресурса из другого процесса с более низким приоритетом.

Существует тест набора тестов совместимости Android (CTS) для выделения, настройки и многократного запуска каждого кодека до тех пор, пока catching OMX_ErrorInsufficientResources (пройден) или любая другая ошибка (не пройдена).

OMX_IndexConfigPriority

Эта конфигурация позволяет приложению описывать желаемый приоритет кодека.

Связанное значение является целым числом. Более высокое значение означает более низкий приоритет. На данный момент поддерживаются только два уровня:

  • 0: приоритет реального времени – означает, что кодек должен поддерживать заданную конфигурацию производительности (например, частоту кадров) в реальном времени. Это будет использоваться только при воспроизведении, захвате мультимедиа и, возможно, в сценариях связи в реальном времени, если максимальная производительность не подходит.
  • 1: приоритет не в реальном времени (наилучшие усилия). Это значение по умолчанию.

Поставщику предлагается использовать это как подсказку при настройке кодека и планировании ресурсов, чтобы понять требования приложения в реальном времени.

Не принимайте приоритет реального времени, если он не настроен на 0.

OMX_IndexConfigOperatingRate

Эта конфигурация позволяет приложению описывать рабочую частоту кадров для видео или частоту дискретизации для аудио, с которой кодек должен будет работать.

Это используется в таких случаях, как захват высокоскоростного/замедленного видео, когда формат видеокодера содержит целевую скорость воспроизведения (например, 30 кадров в секунду), но компонент должен быть способен обрабатывать высокую рабочую скорость захвата (например, 240 кадров в секунду).

Эту ставку следует использовать для планирования ресурсов и установки рабочих точек.