เอกสารนี้มีวัตถุประสงค์เพื่อช่วยเหลือผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) ใช้การสนับสนุนสำหรับตัวจัดการทรัพยากรสื่อของ Android และ API ที่เกี่ยวข้องอย่างเหมาะสม
อินสแตนซ์ตัวแปลงรหัสพร้อมกันสูงสุด
อินเทอร์เฟซของ CodecCapabilities.getMaxSupportedInstances
แสดงผลอินสแตนซ์ตัวแปลงรหัสพร้อมกันสูงสุดที่รองรับ
การทดสอบ CTS
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
เพื่อบังคับใช้การตั้งค่าสูงสุดที่เหมาะสม
/etc/media_codecs.xml
มีตัวอย่างดังต่อไปนี้
... <MediaCodecs> ... <Encoders> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > ... <Limit name="concurrent-instances" max="13" /> </MediaCodec> ... </Encoders> ... </MediaCodecs>
OEM ใช้การทดสอบนี้เพื่อสร้างขีดจำกัดจำนวนพร้อมกันที่ผ่านการทดสอบได้ หากต้องการทำสิ่งต่อไปนี้
- ทำการทดสอบก่อนโดยใช้ cts-tradefed
- ประเมินข้อความแสดงความล้มเหลวที่ได้ มีตัวอย่างดังต่อไปนี้
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>
- เพิ่มบรรทัด
concurrent-instances
ที่แนะนำในการทดสอบ ไปยังไฟล์/etc/media_codecs.xml
ไม่สำเร็จ - ดำเนินการทดสอบอีกครั้งเพื่อยืนยันความสำเร็จ
อัตราเฟรมที่ทำได้สำหรับตัวแปลงรหัสวิดีโอ
อินเทอร์เฟซของ VideoCapabilities.getAchievableFrameRatesFor
จะแสดงผลช่วงอัตราเฟรมวิดีโอที่ทำได้สำหรับขนาดวิดีโอ ช่วงเวลานี้
ข้อมูลจะต้องระบุโดย OEM สำหรับอุปกรณ์แต่ละเครื่องผ่านไฟล์ XML ซึ่งวางไว้ที่
/etc/media_codecs_performance.xml
การตั้งค่าเหล่านี้ทดสอบโดย
com.android.cts.videoperf.VideoEncoderDecoderTest
และ
การทดสอบ CTS android.media.cts.VideoDecoderPerfTest
รายการ
OEM ใช้การทดสอบ CTS เพื่อสร้างไฟล์ XML ที่ผ่านการทดสอบได้ หากต้องการทำสิ่งต่อไปนี้
- ทำการทดสอบก่อนโดยใช้ cts-tradefed เนื่องจาก ความแปรปรวนของประสิทธิภาพ Android เราขอแนะนำให้ทำการทดสอบ หลายครั้งเพื่อให้ได้ค่าต่ำสุดและสูงสุดที่แม่นยำมากขึ้น
- ใช้ ที่ให้มา get_achievable_rates.py ในการสร้างไฟล์ XML
- วางไฟล์ XML ที่:
/etc/media_codecs_performance.xml
โดยการวางไฟล์ XML ไว้ในโปรเจ็กต์ของอุปกรณ์ (device/<vendor>/<product>) และการเพิ่มPRODUCT_COPY_FILES
บรรทัดถึงdevice.mk
เช่นนี้: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
- ทำการทดสอบประสิทธิภาพอีกครั้งเพื่อยืนยันความสำเร็จ
การใช้ตัวแปลงรหัสที่ปลอดภัยและตัวแปลงรหัสที่ไม่ปลอดภัย
- รองรับ-secure-with-non-code-codec —
หากอินสแตนซ์ของตัวแปลงรหัสที่ปลอดภัยและอินสแตนซ์ของตัวแปลงรหัสที่ไม่ปลอดภัยไม่สามารถ
อยู่ร่วมกันในเวลาเดียวกัน ซึ่งควรระบุเป็นการตั้งค่าส่วนกลางใน
media_codecs.xml
ไฟล์<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- รองรับตัวแปลงรหัสหลายตัวที่ปลอดภัย -
หากระบบไม่รองรับการใช้อินสแตนซ์ตัวแปลงรหัสที่ปลอดภัยหลายรายการพร้อมกัน ก็ควร
มีการระบุเป็นการตั้งค่าส่วนกลางในไฟล์
media_codecs.xml
<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- โปรดทราบว่าการตั้งค่าทั้งสองนี้จะเป็นจริงโดยค่าเริ่มต้น ซึ่งหมายความว่าหากระบบรองรับ
ไม่จำเป็นต้องเพิ่มบรรทัดการตั้งค่าใน
media_codecs.xml
- การทดสอบ CTS ของ
ResourceManagerTest
อาจล้มเหลว หากไม่ได้กำหนดการตั้งค่า 2 รายการนี้ อย่างเหมาะสม