Codecs multimédias

À partir d'Android 10 (niveau d'API 29) ou version ultérieure, MediaCodecInfo propose des méthodes qui affichent des informations supplémentaires sur un codec:

isSoftwareOnly()
Renvoie la valeur "true" si le codec ne s'exécute que dans un logiciel. Les codecs logiciels ne garantissent en rien les performances d'affichage.
isHardwareAccelerated()
Renvoie la valeur "true" si un codec est accéléré par le matériel.
isVendor()
Renvoie la valeur "true" si le codec est fourni par le fournisseur de l'appareil ou "false" s'il est fourni par la plate-forme Android.
isAlias()
MediaCodecList peut contenir des entrées supplémentaires pour le même codec sous-jacent en utilisant un ou plusieurs noms de codec alternatifs (alias). Cette méthode renvoie la valeur "true" si le codec de cette entrée est un alias d'un autre codec.

De plus, MediaCodec.getCanonicalName() renvoie le nom du codec sous-jacent pour les codecs créés via un alias.

Points de performance

Un point de performance représente la capacité d'un codec à afficher une vidéo à une hauteur, une largeur et une fréquence d'images spécifiques. Par exemple, le point de performance UHD_60 représente une vidéo en ultra haute définition (3 840 x 2 160 pixels) rendue à 60 images par seconde.

La méthode MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() renvoie une liste d'entrées PerformancePoint que le codec peut afficher ou capturer.

Vous pouvez vérifier si un élément PerformancePoint donné couvre un autre élément en appelant PerformancePoint.covers(PerformancePoint). Par exemple, UHD_60.covers(UHD_50) renvoie la valeur "true".

Une liste des points de performances est fournie pour tous les codecs avec accélération matérielle. Cette liste peut être vide si le codec n'atteint même pas le point de performance standard le plus bas.

Notez que les appareils mis à niveau vers Android 10 (niveau d'API 29) ou version ultérieure sans mettre à jour l'image du fournisseur ne recevront pas de données de points de performances, car ces données proviennent du HAL du fournisseur. Dans ce cas, getSupportedPerformancePoints() renvoie une valeur nulle.