Dependencias del proveedor de SoC para el administrador de recursos multimedia

El objetivo de este documento es ayudar a los proveedores de sistemas en chip (SoC) a implementar correctamente la compatibilidad con la prioridad, la velocidad de operación y los hooks necesarios para el administrador de recursos multimedia de Android.

OMX_ErrorInsufficientResources

El componente del códec debe mostrar OMX_ErrorInsufficientResources en GetHandle, Init, UseBuffer, AllocateBuffer o una transición de estado si la falla se debe a recursos insuficientes. El administrador de recursos multimedia usará el código de error como indicador para anular potencialmente el recurso multimedia de otro proceso de prioridad inferior.

Existe una prueba del conjunto de pruebas de compatibilidad (CTS) de Android para asignar, configurar y, luego, iniciar cada códec de forma reiterada hasta que se muestre catching OMX_ErrorInsufficientResources (aprobado) o cualquier otro error (rechazo).

OMX_IndexConfigPriority

Esta configuración permite que la aplicación describa la prioridad de códec deseada.

El valor asociado es un número entero. Un valor más alto implica una prioridad más baja. Actualmente, solo se admiten dos niveles:

  • 0: Prioridad en tiempo real, lo que significa que el códec debe admitir la configuración de rendimiento determinada (p.ej., la velocidad de fotogramas) en tiempo real. Solo la reproducción y captura de contenido multimedia, y posiblemente las situaciones de comunicación en tiempo real, usarán esta función si el rendimiento del mejor esfuerzo no es adecuado.
  • 1: Prioridad no en tiempo real (mejor esfuerzo). Este es el valor predeterminado.

Se recomienda que el proveedor use esto como una sugerencia en la configuración del códec y la planificación de recursos para comprender los requisitos en tiempo real de la aplicación.

No asumas la prioridad en tiempo real, a menos que se configure en 0.

OMX_IndexConfigOperatingRate

Esta configuración permite que la aplicación describa la velocidad de fotogramas de operación para el video o la tasa de muestreo para el audio a la que deberá operar el códec.

Se usa en casos como la captura de video en alta velocidad o en cámara lenta, en los que el formato del codificador de video contiene la velocidad de reproducción objetivo (p.ej., 30 fps), pero el componente debe poder controlar la alta velocidad de captura operativa (p.ej., 240 fps).

Esta tasa se debe usar para la planificación de recursos y la configuración de los puntos de funcionamiento.