این سند برای کمک به سازندگان تجهیزات اصلی (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
و 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
- تست های عملکرد را دوباره اجرا کنید تا موفقیت آنها را تأیید کنید.
همزیستی کدک امن و کدک غیر ایمن
- supports-secure-with-non-secure-codec — اگر نمونه کدک امن و نمونه کدک غیرایمن نمی توانند همزمان وجود داشته باشند، باید به عنوان تنظیمات جهانی در فایل
media_codecs.xml
نشان داده شود.<MediaCodecs> <Settings> <Setting name="supports-secure-with-non-secure-codec" value="false" /> </Settings> <Encoders> …
- supports-multiple-secure-codecs — اگر همزیستی چند نمونه کدک ایمن پشتیبانی نمی شود، باید به عنوان یک تنظیم جهانی در فایل
media_codecs.xml
نشان داده شود.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- توجه داشته باشید که هر دو تنظیمات به طور پیشفرض درست هستند، به این معنی که اگر پشتیبانی میشوند، نیازی به افزودن خط تنظیمات به
media_codecs.xml
نیست. - اگر این دو تنظیمات به درستی تنظیم نشده باشند، ممکن است تست های
ResourceManagerTest
CTS شکست بخورند.