A partire da Android 10 (livello API 29) e versioni successive, esistono metodi in
MediaCodecInfo che
rivelano maggiori informazioni su un codec:
isSoftwareOnly()- Restituisce true se il codec viene eseguito solo nel software. I codec software non offrono garanzie sulle prestazioni di rendering.
isHardwareAccelerated()- Restituisce true se un codec è accelerato dall'hardware.
isVendor()- Restituisce true se il codec è fornito dal fornitore del dispositivo o false se è fornito dalla piattaforma Android.
isAlias()MediaCodecListpuò contenere voci aggiuntive per lo stesso codec sottostante utilizzando nomi di codec alternativi (alias). Questo metodo restituisce true se il codec in questa voce è un alias di un altro codec.
Inoltre,
MediaCodec.getCanonicalName()
restituisce il nome del codec sottostante per i codec creati tramite un alias.
Punti di rendimento
Un punto di rendimento rappresenta la capacità di un codec di eseguire il rendering video a una specifica
altezza, larghezza e frequenza fotogrammi. Ad esempio, il punto di prestazioni UHD_60
rappresenta un video in ultra alta definizione (3840 x 2160 pixel) riprodotto a 60 frame
al secondo.
Il metodo
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
restituisce un elenco di
voci PerformancePoint
che il codec può eseguire il rendering o acquisire.
Puoi verificare se una determinata PerformancePoint copre un'altra chiamando il numero
PerformancePoint.covers(PerformancePoint).
Ad esempio, UHD_60.covers(UHD_50) restituisce vero.
Viene fornito un elenco di punti di rendimento per tutti i codec con accelerazione hardware. Potrebbe trattarsi di un elenco vuoto se il codec non soddisfa nemmeno il punto di prestazioni standard più basso.
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 avranno dati sui punti di rendimento, perché questi
dati provengono dall'HAL del fornitore. In questo caso, getSupportedPerformancePoints()
restituisce un valore nullo.