Codecs multimédias

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

isSoftwareOnly()
Renvoie la valeur "true" si le codec s'exécute uniquement dans le logiciel. Les codecs logiciels n'offrent aucune garantie concernant 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 "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 codecs alternatifs (alias). Cette méthode renvoie la valeur "true" si le codec de cette entrée est un alias pour 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 à effectuer le rendu d'une vidéo avec 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 Ultra HD (3 840 x 2 160 pixels) rendue à 60 images par seconde.

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

Pour vérifier si un PerformancePoint donné en couvre un autre, appelez PerformancePoint.covers(PerformancePoint). Par exemple, UHD_60.covers(UHD_50) renvoie la valeur "true".

Une liste de points de performance est fournie pour tous les codecs à accélération matérielle. Cette liste peut être vide si le codec ne répond pas au point de performance 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 mise à jour de l'image du fournisseur ne disposeront pas des données de point de performance, car ces données proviennent de la HAL du fournisseur. Dans ce cas, getSupportedPerformancePoints() renvoie la valeur « null ».