Codec multimediali

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

isSoftwareOnly()
Restituisce true se il codec viene eseguito solo nel software. I codec software non garantiscono le 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 potrebbe contenere voci aggiuntive per lo stesso codec sottostante utilizzando uno o più 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 prestazione

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 specifiche. Ad esempio, il performance point UHD_60 rappresenta un video in ultra alta definizione (3840 x 2160 pixel) con rendering a 60 frame al secondo.

Il metodo MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() restituisce un elenco di voci PerformancePoint di cui il codec può eseguire il rendering o l'acquisizione.

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 di prestazioni per tutti i codec con accelerazione hardware. Questo elenco potrebbe essere 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 prestazione, perché questi dati provengono dall'HAL del fornitore. In questo caso, getSupportedPerformancePoints() restituisce null.