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ść „prawda”, jeśli kodek działa tylko w programie. W przypadku kodeków programowych i zapewnia wydajność renderowania.
isHardwareAccelerated()
- Zwraca wartość „prawda”, jeśli kodek jest akcelerowany 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ść „prawda”, jeśli kodek w tym wpisie jest aliasem innego kodeka.
Ponadto
MediaCodec.getCanonicalName()
zwraca nazwę bazowego kodeka dla kodeków utworzonych przez alias.
Punkty skuteczności
Punkt wydajności reprezentuje zdolność kodeka do renderowania wideo w określonym miejscu
wysokości, szerokości i liczby klatek. Na przykład punkt skuteczności UHD_60
przedstawia film w rozdzielczości Ultra High Definition (3840 × 2160 pikseli) renderowany w 60 klatkach.
na sekundę.
Metoda
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
zwraca listę
PerformancePoint
, które kodek może wyrenderować lub przechwycić.
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 skuteczności, ponieważ
dane pochodzą z HAL dostawcy. W tym przypadku getSupportedPerformancePoints()
zwraca wartość null.