מסמך זה נועד לסייע ליצרני ציוד מקורי (OEMs) ליישם כראוי תמיכה עבור מנהל משאבי המדיה של Android וממשקי API קשורים.
מקסימום מופעי codec במקביל
ממשק CodecCapabilities.getMaxSupportedInstances
מחזיר את המספר המרבי של מופעי Codec בו זמנית נתמכים.
מבחן 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
. - הפעל מחדש את הבדיקה כדי לאמת את הצלחתה.
קצבי פריימים בר השגה עבור רכיבי Codec של וידאו
ממשק VideoCapabilities.getAchievableFrameRatesFor
מחזיר את טווח קצבי פריימים של וידאו בר השגה עבור גודל וידאו. מידע זה חייב להיות מסופק על ידי OEM עבור כל מכשיר באמצעות קובץ XML המוצב בכתובת /etc/media_codecs_performance.xml
. הגדרות אלו נבדקות על ידי מבחני com.android.cts.videoperf.VideoEncoderDecoderTest
ו- android.media.cts.VideoDecoderPerfTest
CTS.
יצרני OEM יכולים להשתמש במבחני CTS כדי ליצור את קובצי ה-XML שעוברים את הבדיקות. כדי לעשות זאת:
- הפעל את הבדיקות תחילה באמצעות cts-tradefed. לאור השונות של ביצועי אנדרואיד, מומלץ להריץ את הבדיקות מספר פעמים כדי לקבל ערכי מינימום ומקסימום מדויקים יותר.
- השתמש בסקריפט 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
- הפעל מחדש את מבחני הביצועים כדי לאמת את הצלחתם.
דו קיום של codec מאובטח ו-codec לא מאובטח
- supports-secure-with-non-secure-codec - אם המופע של codec מאובטח והמופע של codec לא מאובטח אינם יכולים להתקיים במקביל, יש לציין זאת כהגדרה גלובלית בקובץ
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- supports-multiple-secure-codec - אם אין תמיכה בדו-קיום של מופעי codec מאובטחים מרובים, יש לציין זאת כהגדרה גלובלית בקובץ
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- שים לב ששתי ההגדרות נכונות כברירת מחדל, כלומר אם הן נתמכות, אין צורך להוסיף את שורת ההגדרות ל-
media_codecs.xml
. - בדיקות ה-CTS
ResourceManagerTest
עלולות להיכשל אם שתי ההגדרות הללו לא הוגדרו כהלכה.