Ab Android 10 (API-Level 29) sind Methoden in
MediaCodecInfo
, die
erhalten Sie weitere Informationen zu einem Codec:
isSoftwareOnly()
- Gibt „true“ zurück, wenn der Codec nur in Software ausgeführt wird. Software-Codecs sorgen dafür, und garantiert die Rendering-Leistung.
isHardwareAccelerated()
- Gibt „true“ zurück, wenn ein Codec durch Hardware beschleunigt wird.
isVendor()
- Gibt „true“ zurück, wenn der Codec vom Gerätehersteller bereitgestellt wird, oder „false“, wenn dieser angegeben wurde Android-Plattform entwickelt.
isAlias()
MediaCodecList
kann zusätzliche Einträge für denselben zugrunde liegenden Codec enthalten Verwenden Sie einen oder mehrere alternative Codec-Namen (Aliase). Diese Methode gibt "true" zurück, wenn der Codec in diesem Eintrag ist ein Alias für einen anderen Codec.
Außerdem
MediaCodec.getCanonicalName()
gibt den zugrunde liegenden Codec-Namen für über einen Alias erstellte Codecs zurück.
Leistungspunkte
Ein Leistungspunkt steht für die Fähigkeit eines Codecs, Videos bei einem bestimmten
Höhe, Breite und Frame-Rate. Zum Beispiel der Leistungspunkt UHD_60
steht für ein Ultra High Definition-Video (3840 x 2160 Pixel), das mit 60 Frames gerendert wird.
pro Sekunde.
Die Methode
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
gibt eine Liste mit
PerformancePoint
Einträge, die der Codec rendern oder erfassen kann.
Du kannst prüfen, ob eine bestimmte PerformancePoint
eine andere umfasst, indem du folgenden Befehl aufrufst:
PerformancePoint.covers(PerformancePoint)
Beispiel: UHD_60.covers(UHD_50)
gibt „true“ zurück.
Für alle hardwarebeschleunigten Codecs wird eine Liste der Leistungspunkte bereitgestellt. Dies könnte eine leere Liste sein, wenn der Codec nicht einmal den niedrigsten Standard erfüllt Leistungspunkt.
Bei Geräten, die auf Android 10 (API-Level 29) und höher aktualisiert wurden,
Beim Aktualisieren des Anbieter-Images
sind keine Leistungspunktdaten verfügbar,
die Daten vom Anbieter HAL stammen. In diesem Fall getSupportedPerformancePoints()
gibt null zurück.