Codec multimediali

A partire da Android 10 (livello API 29) e versioni successive, esistono metodi in MediaCodecInfo che rivela ulteriori informazioni su un codec:

isSoftwareOnly()
Restituisci true se il codec viene eseguito solo nel software. I codec software non consentono in termini di prestazioni di rendering.
isHardwareAccelerated()
restituisce true se un codec è accelerato dall'hardware.
isVendor()
Restituisci true se il codec è fornito dal fornitore del dispositivo o false se fornito dalla piattaforma Android.
isAlias()
MediaCodecList può contenere voci aggiuntive per lo stesso codec sottostante utilizzando uno o più nomi di codec alternativi (alias/i). Questo metodo restituisce true se codec in questa voce è un alias per un altro codec.
.

Inoltre, MediaCodec.getCanonicalName() restituisce il nome codec sottostante per i codec creati tramite un alias.

Punti prestazioni

Un punto prestazioni rappresenta la capacità di un codec di eseguire il rendering di un video in un punto specifico altezza, larghezza e frequenza fotogrammi. Ad esempio, il punto di rendimento UHD_60 rappresenta un video in Ultra HD (3840 x 2160 pixel) sottoposto a rendering a 60 frame e un numero elevato di operazioni di I/O al secondo.

Il metodo MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() restituisce un elenco di PerformancePoint che il codec può visualizzare o acquisire.

Puoi verificare se un determinato PerformancePoint ne copre un altro chiamando PerformancePoint.covers(PerformancePoint) Ad esempio, UHD_60.covers(UHD_50) restituisce true.

Viene fornito un elenco di punti prestazioni per tutti i codec con accelerazione hardware. Potrebbe trattarsi di un elenco vuoto se il codec non soddisfa nemmeno lo standard più basso punto di prestazione.

Tieni presente che i dispositivi di cui è stato eseguito l'upgrade ad Android 10 (livello API 29) e versioni successive senza aggiornare l'immagine del fornitore non avrà dati sui punti di rendimento, che provengono dal fornitore HAL. In questo caso, getSupportedPerformancePoints() restituisce null.