Android 10 (API düzeyi 29) ve sonraki sürümlerde, MediaCodecInfo
içinde bir codec hakkında daha fazla bilgi veren yöntemler vardır:
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 hiç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 tedarikçisi tarafından sağlanıyorsa doğru, Android platformu tarafından sağlanıyorsa yanlış değerini döndürür.
isAlias()
MediaCodecList
, alternatif codec adları (takma adlar) kullanarak aynı temel codec için ek girişler içerebilir. Bu girişteki codec başka bir codec için takma ad ise bu yöntem true 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 (3.840x2.160 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)
'yi arayarak belirli bir PerformancePoint
'nin başka bir PerformancePoint
'yi kapsayıp kapsamadığını kontrol edebilirsiniz.
Örneğin, UHD_60.covers(UHD_50)
doğru değerini döndürür.
Tüm donanım hızlandırmalı codec'ler için performans noktalarının listesi sağlanır. Kodek en düşük standart performans noktasını bile karşılamıyorsa bu liste boş olabilir.
Tedarikçi firma resmi güncellenmeden Android 10 (API düzeyi 29) ve sonraki sürümlere yükseltilen cihazlarda performans noktası verileri bulunmaz. Bunun nedeni, bu verilerin tedarikçi firma HAL'den gelmesidir. Bu durumda getSupportedPerformancePoints()
, null değerini döndürür.