Bu belge, özgün donanım üreticilerine (OEM) yardımcı olmak üzere hazırlanmıştır. Android medya kaynak yöneticisi ve ilgili API'ler için desteği doğru şekilde uygulama.
Maksimum eşzamanlı codec örneği sayısı
CodecCapabilities.getMaxSupportedInstances
arayüzü
desteklenen maksimum eşzamanlı codec örneği sayısını döndürür.
CTS testi
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
.
doğru maksimum değerin ayarlanmasını sağlamak için kullanılır
/etc/media_codecs.xml
.
Örnek:
... <MediaCodecs> ... <Encoders> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > ... <Limit name="concurrent-instances" max="13" /> </MediaCodec> ... </Encoders> ... </MediaCodecs>
OEM'ler, testi geçen eşzamanlı sınırları oluşturmak için bu testi kullanabilir. Bunu yapmak için:
- Önce cts-tradefed komutunu kullanarak testi çalıştırın.
- Sonuçta ortaya çıkacak hata mesajını değerlendirin. Örnek:
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>
- Testte önerilen
concurrent-instances
satırları ekleyin/etc/media_codecs.xml
dosyasına hata mesajı gönderin. - Başarısını doğrulamak için testi yeniden çalıştırın.
Video codec'leri için ulaşılabilir kare hızları
VideoCapabilities.getAchievableFrameRatesFor
arayüzü
bir video boyutu için ulaşılabilir video kare hızları aralığını döndürür. Bu
cihaz bilgileri, OEM tarafından şu adrese yerleştirilmiş bir XML dosyasıyla sağlanmalıdır:
/etc/media_codecs_performance.xml
Bu ayarlar,
com.android.cts.videoperf.VideoEncoderDecoderTest
ve
android.media.cts.VideoDecoderPerfTest
CTS testi.
OEM'ler, testleri geçen XML dosyalarını oluşturmak için CTS testlerini kullanabilir. Bunu yapmak için:
- Öncelikle cts-tradefed etiketini kullanarak testleri çalıştırın. Raporda değişkenlik gösterebiliyor. Bu nedenle, testlerin daha doğru minimum ve maksimum değerler elde etmek için birden çok kez.
- Sağlanan get_achievable_rates.py komut dosyasını kullanarak XML dosyasını oluşturun.
- XML dosyasını şu konuma yerleştirin:
/etc/media_codecs_performance.xml
Bu işlem genellikle XML dosyasının cihaz projesine yerleştirilmesiyle yapılır. (device/<vendor>/<product>) yapıp birdevice.mk
yönüne gidenPRODUCT_COPY_FILES
satırı şu şekilde: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
- Başarılarını doğrulamak için performans testlerini tekrar gerçekleştirin.
Güvenli codec ile güvenli olmayan codec'in birlikte kullanımı
- Support-secure-with-non-secure-codec —
Güvenli codec örneği ve güvenli olmayan codec örneği
aynı anda bir arada bulunmalıdır. Bu durum,
media_codecs.xml
dosyası yükleyin.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- Support-Multiple-secure-codec —
Birden fazla güvenli codec örneğinin bir arada olması desteklenmiyorsa bu durum
media_codecs.xml
dosyasında genel ayar olarak belirtilir.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- Her iki ayarın da varsayılan olarak "doğru" olduğunu, yani destekleniyorlarsa
ayar satırının
media_codecs.xml
öğesine eklenmesine gerek yoktur. - Bu iki ayar belirtilmezse
ResourceManagerTest
CTS testi başarısız olabilir gerekir.