Dependências do fornecedor SoC para gerenciador de recursos de mídia

Este documento tem como objetivo ajudar os fornecedores de sistemas em chip (SoCs) a implementar adequadamente o suporte para prioridade, taxa operacional e ganchos necessários para o gerenciador de recursos de mídia do Android.

OMX_ErrorInsufficientResources

O componente codec deve retornar OMX_ErrorInsufficientResources em GetHandle , Init , UseBuffer , AllocateBuffer ou uma transição de estado se a falha for devido a recursos insuficientes. O código de erro será usado pelo gerenciador de recursos de mídia como indicador para potencialmente antecipar recursos de mídia de outros processos de prioridade mais baixa.

Existe um teste Android Compatibility Test Suite (CTS) para alocar, configurar e iniciar cada codec repetidamente até catching OMX_ErrorInsufficientResources (aprovado) ou qualquer outro erro (falha).

OMX_IndexConfigPriority

Esta configuração permite que o aplicativo descreva a prioridade desejada do codec.

O valor associado é um número inteiro. Valor mais alto significa prioridade mais baixa. Atualmente, apenas dois níveis são suportados:

  • 0: prioridade em tempo real - significando que o codec deverá suportar a configuração de desempenho fornecida (por exemplo, taxa de quadros) em tempo real. Isso só será usado para reprodução e captura de mídia e, possivelmente, para cenários de comunicação em tempo real, se o desempenho de melhor esforço não for adequado.
  • 1: prioridade não em tempo real (melhor esforço). Este é o valor padrão.

Sugere-se que o fornecedor use isso como uma dica usada na configuração do codec e no planejamento de recursos - para entender os requisitos em tempo real do aplicativo.

Não assuma prioridade em tempo real, a menos que esteja configurada como 0.

OMX_IndexConfigOperatingRate

Essa configuração permite que o aplicativo descreva a taxa de quadros operacional para vídeo ou a taxa de amostragem para áudio na qual o codec precisará operar.

Isso é usado para casos como captura de vídeo em alta velocidade/câmera lenta, onde o formato do codificador de vídeo contém a taxa de reprodução desejada (por exemplo, 30fps), mas o componente deve ser capaz de lidar com a alta taxa de captura operacional (por exemplo, 240fps).

Esta taxa deve ser usada para planejamento de recursos e definição de pontos operacionais.