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

Este documento destina-se a ajudar os fornecedores de sistema em chip (SoCs) a implementar adequadamente o suporte para prioridade, taxa de operação e os ganchos necessários para o gerenciador de recursos de mídia do Android.

1. 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 o indicador para potencialmente antecipar recursos de mídia de outro processo de prioridade mais baixa.

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

2. OMX_IndexConfigPriority

Essa configuração permite que o aplicativo descreva a prioridade de codec desejada.

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 deve suportar a configuração de desempenho fornecida (por exemplo, taxa de quadros) em tempo real. Isso só será usado por reprodução de mídia, captura e possivelmente por 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 configurado para 0.

3. 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 de destino (por exemplo, 30 fps), mas o componente deve ser capaz de lidar com a alta taxa de captura operacional (por exemplo, 240 fps).

Essa taxa deve ser usada para planejamento de recursos e definição dos pontos de operação.