Android 10 (API düzeyi 29) ve sonraki sürümlerde, MediaCodecInfo
içinde 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ı hakkında herhangi bir garanti vermez.
isHardwareAccelerated()
- Bir codec donanım tarafından hızlandırılıyorsa doğru değerini döndürür.
isVendor()
- Codec, cihaz satıcısı tarafından sağlanıyorsa true (doğru), Android platformu tarafından sağlanıyorsa false (yanlış) değerini döndürür.
isAlias()
MediaCodecList
, aynı temel codec için alternatif codec adları (takma adlar) kullanılarak ek girişler içerebilir. Bu yöntem, bu girişteki codec başka bir codec'in diğer adıysa true değerini döndürür.
Ayrıca,
MediaCodec.getCanonicalName()
bir 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 ifade 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.
Yöntem,
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
kodekin oluşturabileceği veya yakalayabileceği
PerformancePoint
girişlerin listesini döndürür.
Belirli bir PerformancePoint
öğesinin başka bir öğeyi kapsayıp kapsamadığını PerformancePoint.covers(PerformancePoint)
öğesini arayarak 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 noktalarının listesi sağlanır. Codec, en düşük standart performans noktasını bile karşılamıyorsa bu liste boş olabilir.
Android 10 (API düzeyi 29) ve sonraki sürümlere yükseltilen ancak satıcı görüntüsü güncellenmeyen cihazlarda performans noktası verilerinin bulunmayacağını unutmayın. Bunun nedeni, bu verilerin satıcı HAL'den gelmesidir. Bu durumda getSupportedPerformancePoints()
null değerini döndürür.