Codec multimediali

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

isSoftwareOnly()
Restituisci true se il codec viene eseguito solo nel 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 sottostante utilizzando nomi di codec alternativi (alias). 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.

Punti fedeltà

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.

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 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 un valore nullo.