Tài liệu này nhằm trợ giúp các nhà sản xuất thiết bị gốc (OEM) triển khai đúng cách việc hỗ trợ cho trình quản lý tài nguyên đa phương tiện trên Android và các API có liên quan.
Số bản sao bộ mã hoá và giải mã đồng thời tối đa
Giao diện CodecCapabilities.getMaxSupportedInstances
trả về số lượng tối đa các phiên bản bộ mã hoá và giải mã đồng thời được hỗ trợ.
Bài kiểm tra CTS
testGetMaxSupportedInstances(android.media.cts.MediaCodecCapabilitiesTest)
được dùng để thực thi mức tối đa thích hợp được đặt trong
/etc/media_codecs.xml
Dưới đây là ví dụ:
... <MediaCodecs> ... <Encoders> <MediaCodec name="OMX.<vendor>.video.encoder.avc" type="video/avc" > ... <Limit name="concurrent-instances" max="13" /> </MediaCodec> ... </Encoders> ... </MediaCodecs>
OEM có thể sử dụng bài kiểm thử này để tạo các giới hạn đồng thời vượt qua bài kiểm thử. Để thực hiện việc này:
- Trước tiên, hãy chạy chương trình kiểm thử bằng cts-tradefed.
- Đánh giá thông báo lỗi thu được. Dưới đây là ví dụ:
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>
- Thêm các dòng
concurrent-instances
được đề xuất trong kiểm thử vào tệp/etc/media_codecs.xml
. - Chạy lại quy trình kiểm thử để xác minh mức độ thành công.
Tốc độ khung hình có thể đạt được đối với bộ mã hoá và giải mã video
Giao diện VideoCapabilities.getAchievableFrameRatesFor
trả về phạm vi tốc độ khung hình video có thể đạt được cho một kích thước video. Chiến dịch này
thông tin phải do OEM cung cấp đối với từng thiết bị qua tệp XML được đặt tại
/etc/media_codecs_performance.xml
. Các chế độ cài đặt này sẽ được kiểm tra bởi
com.android.cts.videoperf.VideoEncoderDecoderTest
và
android.media.cts.VideoDecoderPerfTest
thử nghiệm CTS.
OEM có thể sử dụng các bài kiểm thử CTS để tạo các tệp XML vượt qua bài kiểm thử. Để thực hiện việc này:
- Trước tiên, hãy chạy kiểm thử bằng cts-tradefed. Do sự thay đổi về hiệu suất của Android, bạn nên chạy các bài kiểm thử nhiều lần để có được giá trị tối thiểu và tối đa chính xác hơn.
- Sử dụng được cung cấp get_achievable_rates.py để tạo tệp XML.
- Đặt tệp XML vào:
/etc/media_codecs_performance.xml
Việc này thường được thực hiện bằng cách đặt tệp XML vào dự án thiết bị (device/<vendor>/<product>) và thêm mộtPRODUCT_COPY_FILES
dòng đếndevice.mk
như sau: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
- Chạy lại bài kiểm thử hiệu suất để xác minh mức độ thành công.
Sự tồn tại của bộ mã hoá và giải mã bảo mật
- hỗ trợ-bảo mật với-không-bảo mật-codec —
Nếu phiên bản của bộ mã hoá và giải mã bảo mật và phiên bản của bộ mã hoá và giải mã không bảo mật
cùng tồn tại, cần được chỉ định là cài đặt toàn cầu trong
Tệp
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- hỗ trợ nhiều bộ mã hoá và giải mã —
Nếu nhiều phiên bản bộ mã hoá và giải mã bảo mật không được hỗ trợ cùng tồn tại, thì bạn phải
được biểu thị là một chế độ cài đặt chung trong tệp
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- Xin lưu ý rằng cả hai cài đặt đều đúng theo mặc định, có nghĩa là nếu chúng được hỗ trợ,
bạn không cần thêm dòng cài đặt vào
media_codecs.xml
. - Thử nghiệm CTS
ResourceManagerTest
có thể không thành công nếu bạn không thiết lập hai chế độ cài đặt này đúng cách.