המסמך הזה נועד לעזור ליצרני ציוד מקורי (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>
יצרני ציוד מקורי יכולים להשתמש בבדיקה הזו כדי ליצור את המגבלות בו-זמנית שעוברים את הבדיקה. לשם כך:
- קודם מריצים את הבדיקה באמצעות 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
וגם
android.media.cts.VideoDecoderPerfTest
בדיקות CTS.
יצרני ציוד מקורי יכולים להשתמש בבדיקות ה-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
- הריצו מחדש את בדיקות הביצועים כדי לוודא שהן הצליחו.
קיום משותף של קודק מאובטח וקודק לא מאובטח
- תומך-מאובטח עם קודק לא מאובטח —
אם המופע של קודק מאובטח והמופע של קודק לא מאובטח לא יכולים
קיימות בו-זמנית, ויש לציין זאת כהגדרה גלובלית
קובץ
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- Support-multi-secure-codecs —
אם אין תמיכה בקיום של מספר מכונות קודק מאובטחות, צריך לוודא
מצוינת כהגדרה גלובלית בקובץ
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- שימו לב ששתי ההגדרות נכונות כברירת מחדל, כלומר אם הן נתמכות,
אין צורך להוסיף את שורת ההגדרה ל-
media_codecs.xml
. ResourceManagerTest
בדיקות ה-CTS עשויות להיכשל אם שתי ההגדרות האלה לא מוגדרות כראוי.