Códecs de elementos multimedia

A partir de Android 10 (nivel de API 29), hay métodos en MediaCodecInfo que revelan más información sobre un códec:

isSoftwareOnly()
Devuelve verdadero si el códec se ejecuta solo en software. Los códecs de software no garantizan el rendimiento de la renderización.
isHardwareAccelerated()
Devuelve verdadero si un códec se acelera por hardware.
isVendor()
Devuelve verdadero si el proveedor del dispositivo proporciona el códec o falso si lo proporciona la plataforma de Android.
isAlias()
MediaCodecList puede contener entradas adicionales para el mismo códec subyacente con uno o más nombres de códec alternativos (alias). Este método devuelve verdadero si el códec de esta entrada es un alias de otro códec.

Además, MediaCodec.getCanonicalName() devuelve el nombre del códec subyacente para los códecs creados a través de un alias.

Puntos de rendimiento

Un punto de rendimiento representa la capacidad de un códec para renderizar un video con una altura, un ancho y una velocidad de fotogramas específicos. Por ejemplo, el punto de rendimiento UHD_60 representa un video de ultra alta definición (3840 × 2160 píxeles) renderizado a 60 fotogramas por segundo.

El método MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() devuelve una lista de entradas PerformancePoint que el códec puede renderizar o capturar.

Puedes verificar si un PerformancePoint determinado cubre a otro llamando a PerformancePoint.covers(PerformancePoint). Por ejemplo, UHD_60.covers(UHD_50) devuelve verdadero.

Se proporciona una lista de puntos de rendimiento para todos los códecs de aceleración de hardware. Esta podría ser una lista vacía si el códec no cumple ni siquiera con el punto de rendimiento estándar más bajo.

Ten en cuenta que los dispositivos que se actualizaron a Android 10 (nivel de API 29) y versiones posteriores sin actualizar la imagen del proveedor no tendrán datos de puntos de rendimiento, ya que estos datos provienen de la HAL del proveedor. En este caso, getSupportedPerformancePoints() devuelve un valor nulo.