À partir d'Android 10 (niveau d'API 29) ou version ultérieure, MediaCodecInfo
contient des méthodes qui révèlent plus d'informations sur un codec:
isSoftwareOnly()
- Renvoie la valeur "true" si le codec s'exécute en mode logiciel uniquement. Les codecs logiciels ne garantissent pas les performances de rendu.
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 la valeur "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 à l'aide d'un ou de 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) affichée à 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 une PerformancePoint
donnée couvre une autre en appelant PerformancePoint.covers(PerformancePoint)
.
Par exemple, UHD_60.covers(UHD_50)
renvoie "true".
Une liste de points de performances est fournie pour tous les codecs à accélération matérielle. Cette liste peut être vide si le codec ne répond même pas au point de performances standard le plus bas.
Notez que les appareils qui ont été mis à niveau vers Android 10 (niveau d'API 29) ou version ultérieure sans mettre à jour l'image du fournisseur ne disposent pas de données de point de performance, car ces données proviennent du HAL du fournisseur. Dans ce cas, getSupportedPerformancePoints()
renvoie la valeur nulle.