Medya codec'leri

Android 10 (API düzeyi 29) ve sonraki sürümlerden itibaren MediaCodecInfo'te 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ı konusunda hiçbir garanti vermez.
isHardwareAccelerated()
Bir codec donanım tarafından hızlandırılırsa "doğru" değerini döndürür.
isVendor()
Code, cihaz tedarikçi firması tarafından sağlandıysa true (doğru), Android platformu tarafından sağlanıyorsa false (yanlış) 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 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ı, codec'in videoyu belirli bir yükseklik, genişlik ve kare hızında oluşturma becerisini 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) numarasını arayarak belirli bir PerformancePoint öğesinin başka bir PerformancePoint için geçerli olup olmadığı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 noktalarının listesi sağlanmıştı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 bir sürüme yükseltilmiş olan cihazlarda, tedarikçi firma resmi güncellenmeden performans noktası verileri bulunmayacaktır, çünkü bu veriler tedarikçi firma HAL'sinden gelir. Bu durumda, getSupportedPerformancePoints() işlevi null döndürür.