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()
MediaCodecList
può 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.