Dokumen ini dimaksudkan untuk membantu produsen peralatan asli (OEM) menerapkan dukungan untuk pengelola sumber daya media Android dan API terkait dengan benar.
1. Maks. instans codec bersamaan
Antarmuka CodecCapabilities.getMaxSupportedInstances
mengembalikan jumlah maksimum instance codec bersamaan yang didukung.
Tes CTS testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
digunakan untuk menegakkan pengaturan maksimum yang tepat di /etc/media_codecs.xml
.
Berikut ini contohnya:
... <MediaCodecs> ... <Encoders> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > ... <Limit name="concurrent-instances" max="13" /> </MediaCodec> ... </Encoders> ... </MediaCodecs>
OEM dapat menggunakan pengujian ini untuk menghasilkan batas bersamaan yang lulus pengujian. Untuk melakukan ini:
- Jalankan tes terlebih dahulu menggunakan cts-tradefed.
- Evaluasi pesan kegagalan yang dihasilkan. Berikut ini contohnya:
There was 1 failure: 1) testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest) junit.framework.AssertionFailedError: In order to pass the test, please publish following codecs' concurrent instances limit in /etc/media_codecs.xml: <MediaCodec name="OMX.<vendor>.video.encoder.mpeg4" type="video/mp4v-es" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.h263" type="video/3gpp" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.encoder.vp8" type="video/x-vnd.on2.vp8" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.avc" type="video/avc" > <Limit name="concurrent-instances" max="13" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.avc.secure" type="video/avc" > <Limit name="concurrent-instances" max="4" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.mpeg4" type="video/mp4v-es" > <Limit name="concurrent-instances" max="12" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.h263" type="video/3gpp" > <Limit name="concurrent-instances" max="12" /> </MediaCodec> <MediaCodec name="OMX.<vendor>.video.decoder.vp8" type="video/x-vnd.on2.vp8" > <Limit name="concurrent-instances" max="12" /> </MediaCodec>
- Tambahkan baris
concurrent-instances
yang disarankan dalam pesan kegagalan pengujian ke file/etc/media_codecs.xml
. - Jalankan kembali pengujian untuk memverifikasi keberhasilannya.
2. Kecepatan bingkai yang dapat dicapai untuk codec video
Antarmuka VideoCapabilities.getAchievableFrameRatesFor
mengembalikan rentang kecepatan bingkai video yang dapat dicapai untuk ukuran video. Informasi ini harus disediakan oleh OEM untuk setiap perangkat melalui file XML yang ditempatkan di /etc/media_codecs_performance.xml
. Setelan ini diuji dengan pengujian com.android.cts.videoperf.VideoEncoderDecoderTest
dan android.media.cts.VideoDecoderPerfTest
CTS.
OEM dapat menggunakan tes CTS untuk menghasilkan file XML yang lulus tes. Untuk melakukan ini:
- Jalankan tes terlebih dahulu menggunakan cts-tradefed. Mengingat variabilitas kinerja Android, direkomendasikan pengujian dijalankan beberapa kali untuk mendapatkan nilai minimum dan maksimum yang lebih akurat.
- Gunakan skrip get_achievable_rates.py yang disediakan untuk menghasilkan file XML.
- Tempatkan file XML di:
/etc/media_codecs_performance.xml
Ini biasanya dilakukan dengan menempatkan file XML dalam proyek perangkat (device/ <vendor> / <product> ) dan menambahkan barisPRODUCT_COPY_FILES
kedevice.mk
seperti:PRODUCT_COPY_FILES += \ ... device/moto/shamu/media_codecs.xml:system/etc/media_codecs.xml \ + device/moto/shamu/media_codecs_performance.xml:system/etc/media_codecs_performance.xml
- Jalankan kembali tes kinerja untuk memverifikasi keberhasilannya.
3. Co-eksistensi codec aman dan codec tidak aman
- support-secure-with-non-secure-codec — Jika instance codec aman dan instance codec tidak aman tidak dapat hidup berdampingan secara bersamaan, itu harus ditunjukkan sebagai pengaturan global dalam file
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- support-multiple-secure-codec — Jika beberapa instance codec aman tidak didukung, itu harus ditunjukkan sebagai pengaturan global dalam file
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- Perhatikan bahwa kedua pengaturan adalah benar secara default, artinya jika didukung, tidak perlu menambahkan baris pengaturan ke
media_codecs.xml
. - Tes CTS
ResourceManagerTest
mungkin gagal jika kedua pengaturan ini tidak disetel dengan benar.