Kodeki multimediów

Począwszy od Androida 10 (poziom interfejsu API 29) i nowszych, dostępne są metody MediaCodecInfo Wyświetl więcej informacji o kodeku:

isSoftwareOnly()
Zwraca wartość true, jeśli kodek działa tylko w oprogramowaniu. Kodek oprogramowania nie gwarantuje wydajności renderowania.
isHardwareAccelerated()
Zwraca wartość „prawda”, jeśli kodek jest przyspieszany przez sprzęt.
isVendor()
Zwraca wartość „true” (prawda), jeśli kodek został dostarczony przez dostawcę urządzenia, lub „false” (fałsz), jeśli został podany przez platformę Android.
isAlias()
MediaCodecList może zawierać dodatkowe pozycje dla tego samego kodeka bazowego korzystając z alternatywnych nazw kodeków (aliasów). Ta metoda zwraca wartość true, jeśli kodek w tym wpisie jest aliasem innego kodeka.

Ponadto: MediaCodec.getCanonicalName() zwraca nazwę bazowego kodeka dla kodeków utworzonych przez alias.

Play Points

Punkt wydajności to zdolność kodeka do renderowania filmu o określonej wysokości, szerokości i liczbie klatek. Na przykład punkt wydajności UHD_60 odpowiada filmowi w ultrawysokiej rozdzielczości (3840 x 2160 pikseli) renderowanemu z 60 klatkami na sekundę.

Metoda MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()zwraca listę PerformancePointpozycji, które kodek może renderować lub rejestrować.

Aby sprawdzić, czy dane połączenie PerformancePoint obejmuje inne, wywołaj polecenie PerformancePoint.covers(PerformancePoint) Na przykład UHD_60.covers(UHD_50) zwraca wartość „prawda”.

W przypadku wszystkich kodeków z akceleracją sprzętową dostępna jest lista punktów wydajności. Może to być pusta lista, jeśli kodek nie spełnia nawet najniższego standardu do określonego wskaźnika skuteczności.

Pamiętaj, że urządzenia uaktualnione do Androida 10 (poziom interfejsu API 29) lub nowszego bez aktualizacja obrazu dostawcy nie będzie zawierać danych punktu wydajności, ponieważ dane pochodzą z HAL dostawcy. W tym przypadku getSupportedPerformancePoints() zwraca wartość null.