Dimulai dengan Android 10 (level API 29) dan yang lebih tinggi, ada metode dalam MediaCodecInfo
yang mengungkapkan informasi lebih lanjut tentang codec:
isSoftwareOnly()
- Mengembalikan nilai true jika codec hanya berjalan di perangkat lunak. Codec perangkat lunak tidak memberikan jaminan tentang performa rendering.
isHardwareAccelerated()
- Mengembalikan nilai true jika codec diakselerasi oleh perangkat keras.
isVendor()
- Mengembalikan nilai true jika codec disediakan oleh vendor perangkat atau false jika disediakan oleh platform Android.
isAlias()
MediaCodecList
dapat berisi entri tambahan untuk codec dasar yang sama menggunakan nama codec alternatif (alias/es). Metode ini mengembalikan nilai true jika codec dalam entri ini adalah alias untuk codec lain.
Selain itu, MediaCodec.getCanonicalName()
mengembalikan nama codec yang mendasari untuk codec yang dibuat melalui alias.
Poin Kinerja
Poin kinerja mewakili kemampuan codec untuk membuat video pada ketinggian, lebar, dan kecepatan frame tertentu. Misalnya, poin kinerja UHD_60
mewakili video Ultra High Definition (3840x2160 piksel) yang dihasilkan pada 60 frame per detik.
Metode MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
mengembalikan daftar entri PerformancePoint
yang dapat dirender atau ditangkap oleh codec.
Anda dapat memastikan apakah PerformancePoint
tersebut mencakup yang lain dengan memanggil PerformancePoint.covers(PerformancePoint)
. Misalnya, UHD_60.covers(UHD_50)
mengembalikan true.
Daftar poin kinerja disediakan untuk semua codec yang diakselerasi oleh perangkat keras. Ini bisa menjadi daftar kosong jika codec tersebut tidak memenuhi bahkan poin kinerja standar terendah.
Perhatikan bahwa perangkat yang telah diupgrade ke Android 10 (level API 29) dan yang lebih tinggi tanpa update gambar vendor tidak akan memiliki data poin kinerja, karena data ini berasal dari HAL vendor. Dalam hal ini, getSupportedPerformancePoints()
mengembalikan nol.