A partire da Android 10 (livello API 29) e versioni successive, in MediaCodecInfo
sono disponibili metodi che forniscono ulteriori informazioni su un codec:
isSoftwareOnly()
- Restituisce true se il codec viene eseguito solo in software. I codec software non forniscono alcuna garanzia in merito alle 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 di base utilizzando uno o più nomi (alias) alternativi per il codec. Questo metodo restituisce true se il codec in questa voce è un alias per un altro codec.
Inoltre,
MediaCodec.getCanonicalName()
restituisce il nome del codec sottostante per i codec creati tramite un alias.
Play Points
Un punto di rendimento rappresenta la capacità di un codec di eseguire il rendering di un video a un'altezza, una larghezza e una frequenza fotogrammi specifici. Ad esempio, il punto di rendimento UHD_60
rappresenta un video in ultra alta definizione (3840 x 2160 pixel) visualizzato a 60 frame al secondo.
Il metodo
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
restituisce un elenco di
PerformancePoint
voci 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.
È 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 rendimento standard più basso.
Tieni presente che i dispositivi su 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, in quanto questi provengono dall'HAL del fornitore. In questo caso, getSupportedPerformancePoints()
restituisce null.