Este documento está destinado a ayudar a los proveedores de sistemas en chip (SoC) a implementar correctamente la compatibilidad con la prioridad, la tasa de operación y los enlaces necesarios para el administrador de recursos de medios de Android.
1. OMX_ErrorRecursos insuficientes
El componente de códec debe devolver 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 de medios usará el código de error como indicador para potencialmente adelantarse a los recursos de medios de otros procesos de menor prioridad.
Existe una prueba de Android Compatibility Test Suite (CTS) para asignar, configurar e iniciar cada códec repetidamente hasta catching OMX_ErrorInsufficientResources
(aprobado) o cualquier otro error (fallo).
2. OMX_IndexConfigPriority
Esta configuración permite que la aplicación describa la prioridad del códec deseado.
El valor asociado es un número entero. Un valor más alto significa una prioridad más baja. Actualmente, solo se admiten dos niveles:
- 0: prioridad en tiempo real, lo que significa que el códec admitirá la configuración de rendimiento dada (por ejemplo, velocidad de fotogramas) en tiempo real. Esto solo se utilizará para la reproducción y captura de medios y, posiblemente, para escenarios de comunicación en tiempo real si el rendimiento del mejor esfuerzo no es adecuado.
- 1: prioridad no en tiempo real (mejor esfuerzo). Este es el valor predeterminado.
Se sugiere que el proveedor use esto como una sugerencia utilizada 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 asuma la prioridad en tiempo real a menos que esté configurado en 0.
3. OMX_IndexConfigOperatingRate
Esta configuración permite que la aplicación describa la velocidad de fotogramas operativa para video o la frecuencia de muestreo para audio a la que deberá operar el códec.
Esto se usa para casos como la captura de video de alta velocidad/cámara lenta, donde el formato del codificador de video contiene la velocidad de reproducción objetivo (por ejemplo, 30 fps), pero el componente debe poder manejar la alta velocidad de captura operativa (por ejemplo, 240 fps).
Esta tasa debe utilizarse para la planificación de recursos y la fijación de los puntos de operación.