Dokumen ini dimaksudkan untuk membantu produsen peralatan asli (OEM) mengimplementasikan dukungan dengan benar bagi pengelola resource media Android dan API terkait.
Instance codec serentak maksimum
Antarmuka CodecCapabilities.getMaxSupportedInstances
mengembalikan jumlah maksimum instance codec serentak yang didukung.
Uji CTS
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
digunakan untuk memberlakukan batas
maksimum yang sesuai dalam
/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 membuat 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 pengujian pesan kegagalan ke file/etc/media_codecs.xml
. - Jalankan ulang 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. Ini
informasi harus disediakan oleh OEM untuk setiap perangkat melalui file XML yang ditempatkan di
/etc/media_codecs_performance.xml
. Setelan ini diuji oleh
com.android.cts.videoperf.VideoEncoderDecoderTest
dan
android.media.cts.VideoDecoderPerfTest
uji CTS.
OEM dapat menggunakan pengujian CTS untuk menghasilkan file XML yang lulus pengujian. Untuk melakukannya:
- Jalankan pengujian terlebih dahulu menggunakan cts-tradefed. Mengingat variabilitas performa Android, sebaiknya jalankan pengujian beberapa kali untuk mendapatkan nilai minimum dan maksimum yang lebih akurat.
- Gunakan yang disediakan get_achievable_rates.py untuk menghasilkan file XML.
- Tempatkan file XML di:
/etc/media_codecs_performance.xml
Ini biasanya dilakukan dengan menempatkan file XML dalam proyek perangkat (perangkat/<vendor>/<product>) dan menambahkan BarisPRODUCT_COPY_FILES
kedevice.mk
seperti berikut: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 yang tidak aman
- Support-secure-with-non-secure-codec —
Jika codec aman dan instance codec yang tidak aman tidak
berjalan berdampingan pada waktu yang sama, yang harus
diindikasikan sebagai latar global dalam
File
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- mendukung-multiple-secure-codec —
Jika koeksistensi beberapa instance codec yang aman tidak didukung, maka
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 adalah benar secara default, yang berarti jika keduanya didukung,
tidak perlu menambahkan baris setelan ke
media_codecs.xml
. - Uji CTS
ResourceManagerTest
mungkin gagal jika kedua setelan ini tidak ditetapkan mereka dapat terus berjalan dengan baik.