Dokumen ini ditujukan untuk membantu produsen peralatan asli (OEM) menerapkan dukungan untuk pengelola resource media Android dan API terkait dengan benar.
Instance codec serentak maksimum
Antarmuka CodecCapabilities.getMaxSupportedInstances
menampilkan jumlah maksimum instance codec serentak yang didukung.
Pengujian CTS
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
digunakan untuk menerapkan maksimum yang sesuai yang ditetapkan 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 serentak yang lulus pengujian. Untuk melakukannya:
- Jalankan pengujian 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.
Kecepatan frame yang dapat dicapai untuk codec video
Antarmuka VideoCapabilities.getAchievableFrameRatesFor
menampilkan rentang kecepatan frame video yang dapat dicapai untuk ukuran video. Informasi
ini harus diberikan oleh OEM untuk setiap perangkat melalui file XML yang ditempatkan di
/etc/media_codecs_performance.xml
. Setelan ini diuji oleh
pengujian CTS com.android.cts.videoperf.VideoEncoderDecoderTest
dan
android.media.cts.VideoDecoderPerfTest
.
OEM dapat menggunakan pengujian CTS untuk membuat file XML yang lulus pengujian. Untuk melakukannya:
- Jalankan pengujian terlebih dahulu menggunakan cts-tradefed. Mengingat variabilitas performa Android, sebaiknya pengujian dijalankan beberapa kali untuk mendapatkan nilai minimum dan maksimum yang lebih akurat.
- Gunakan skrip get_achievable_rates.py yang disediakan untuk membuat file XML.
- Tempatkan file XML di:
/etc/media_codecs_performance.xml
Tindakan ini biasanya dilakukan dengan menempatkan file XML dalam project perangkat (device/<vendor>/<product>) dan menambahkan barisPRODUCT_COPY_FILES
kedevice.mk
seperti ini: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 pengujian performa untuk memverifikasi keberhasilannya.
Koeksistensi codec aman dan codec tidak aman
- supports-secure-with-non-secure-codec —
Jika instance codec aman dan instance codec tidak aman tidak dapat
bersama-sama secara bersamaan, hal tersebut harus ditunjukkan sebagai setelan global dalam
file
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- supports-multiple-secure-codecs —
Jika keberadaan beberapa instance codec aman tidak didukung, hal tersebut harus
ditunjukkan sebagai setelan global dalam file
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- Perhatikan bahwa kedua setelan tersebut benar secara default, yang berarti jika didukung,
Anda tidak perlu menambahkan baris setelan ke
media_codecs.xml
. - Pengujian CTS
ResourceManagerTest
dapat gagal jika kedua setelan ini tidak ditetapkan dengan benar.