Mulai Android 10 (API level 29) dan yang lebih baru, ada metode di
MediaCodecInfo
yang
mengungkap informasi selengkapnya tentang codec:
isSoftwareOnly()
- Menampilkan true jika codec hanya berjalan di software. Codec software tidak memberikan jaminan terkait performa rendering.
isHardwareAccelerated()
- Menampilkan nilai true (benar) jika codec diakselerasi oleh hardware.
isVendor()
- Menampilkan 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). Metode ini akan menampilkan true (benar) jika codec dalam entri ini adalah alias untuk codec lain.
Selain itu,
MediaCodec.getCanonicalName()
menampilkan nama codec dasar untuk codec yang dibuat melalui alias.
Poin Kinerja
Poin performa menunjukkan kemampuan codec untuk merender video pada
tinggi, lebar, dan kecepatan frame tertentu. Misalnya, titik performa UHD_60
mewakili video Definisi Ultra Tinggi (3840x2160 piksel) yang dirender pada 60 frame
per detik.
Metode
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
menampilkan daftar
entri PerformancePoint
yang dapat dirender atau direkam oleh codec.
Anda dapat memeriksa apakah PerformancePoint
tertentu mencakup yang lain dengan memanggil
PerformancePoint.covers(PerformancePoint)
.
Misalnya, UHD_60.covers(UHD_50)
menampilkan benar (true).
Daftar poin kinerja disediakan untuk semua codec yang diakselerasi oleh perangkat keras. Daftar ini dapat berupa daftar kosong jika codec tidak memenuhi poin performa standar terendah sekalipun.
Perlu diketahui bahwa perangkat yang telah diupgrade ke Android 10 (API level 29) dan yang lebih tinggi tanpa
mengupdate image vendor tidak akan memiliki data poin performa karena
data ini berasal dari HAL vendor. Dalam hal ini, getSupportedPerformancePoints()
menampilkan null.