Android 10 (API düzeyi 29) ve sonraki sürümlerden itibaren MediaCodecInfo içinde bir codec hakkında daha fazla bilgi veren yöntemler bulunur:
isSoftwareOnly()- Codec yalnızca yazılımda çalışıyorsa true değerini döndürür. Yazılım codec'leri, oluşturma performansıyla ilgili herhangi bir garanti vermez.
isHardwareAccelerated()- Bir codec donanım tarafından hızlandırılıyorsa true değerini döndürür.
isVendor()- Codec, cihaz tedarikçisi tarafından sağlanıyorsa true, Android platformu tarafından sağlanıyorsa false değerini döndürür.
isAlias()MediaCodecList, alternatif codec adları (takma adlar) kullanan aynı temel codec için ek girişler içerebilir. Bu girişteki codec başka bir codec'in takma adıysa bu yöntem doğru değerini döndürür.
Ayrıca,
MediaCodec.getCanonicalName()
takma ad aracılığıyla oluşturulan codec'ler için temel codec adını döndürür.
Performans Puanları
Performans noktası, bir codec'in videoyu belirli bir yükseklik, genişlik ve kare hızında oluşturma yeteneğini temsil eder. Örneğin, UHD_60 performans noktası, saniyede 60 kare hızında oluşturulan Ultra Yüksek Çözünürlüklü videoyu (3840x2160 piksel) temsil eder.
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() yöntemi, codec'in oluşturabileceği veya yakalayabileceği PerformancePoint girişlerinin listesini döndürür.
PerformancePoint.covers(PerformancePoint) işlevini çağırarak belirli bir PerformancePoint öğesinin başka bir öğeyi kapsayıp kapsamadığını kontrol edebilirsiniz.
Örneğin, UHD_60.covers(UHD_50) doğru değerini döndürür.
Donanım hızlandırmalı tüm codec'ler için performans puanlarının listesi sağlanır. Codec en düşük standart performans puanını bile karşılamıyorsa bu liste boş olabilir.
Tedarikçi firma imajı güncellenmeden Android 10 (API düzeyi 29) ve sonraki sürümlere yükseltilen cihazlarda performans puanı verileri bulunmaz. Bu veriler tedarikçi firma HAL'sinden alınır. Bu durumda getSupportedPerformancePoints(), null değerini döndürür.