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 doğru 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ğlandıysa true (doğru), Android platformu tarafından sağlandıysa false (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'in takma adıysa 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ı, codec'in videoyu belirli bir yükseklik, genişlik ve kare hızında oluşturma özelliğ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 görüntüsünü güncellemeden Android 10 (API düzeyi 29) ve sonraki bir sürüme yükseltilmiş cihazların performans noktası verileri olmayacağını unutmayın. Bunun nedeni, bu verilerin satıcının HAL'sinden alınmasıdır. Bu durumda getSupportedPerformancePoints()
, null değerini döndürür.