Codec media

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.