يهدف هذا المستند إلى مساعدة المصنّعين الأصليين للأجهزة (OEM). التنفيذ الصحيح لإدارة موارد الوسائط في Android وواجهات برمجة التطبيقات ذات الصلة.
الحد الأقصى لمثيلات برنامج الترميز المتزامن
الواجهة 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
لعرض نطاق عدد إطارات الفيديو القابل للتحقيق لحجم الفيديو. هذا النمط
يجب أن يوفّر المصنّع الأصلي للجهاز المعلومات عن كل جهاز من خلال ملف XML موضوع على
/etc/media_codecs_performance.xml
تم اختبار هذه الإعدادات بواسطة
com.android.cts.videoperf.VideoEncoderDecoderTest
android.media.cts.VideoDecoderPerfTest
اختبارات CTS.
يمكن للمصنّعين الأصليين للأجهزة استخدام اختبارات CTS لإنشاء ملفات XML التي تجتاز الاختبارات. ولإجراء ذلك:
- قم بإجراء الاختبارات أولاً باستخدام cts-tradefed. بناءً على لتغيّر أداء Android، ننصحك بإجراء الاختبارات عدة مرات للحصول على قيم دنيا والحد الأقصى أكثر دقة.
- استخدم المتوفر get_acheaseable_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> …
- يدعم-العديد من برامج الترميز الآمنة-
في حالة عدم توافق مثيلات برنامج ترميز آمن متعددة، فينبغي أن
تمت الإشارة إليه كإعداد عام في ملف
media_codecs.xml
.<MediaCodecs> <Settings> <Setting name="supports-multiple-secure-codecs" value="false" /> </Settings> <Encoders> …
- لاحظ أن كلا الإعدادين صحيحان بشكل افتراضي، أي إذا كانما مدعومين،
وليست هناك حاجة إلى إضافة سطر الإعداد إلى
media_codecs.xml
. - قد يتعذّر إجراء
ResourceManagerTest
اختبارات CTS في حال عدم ضبط هذين الإعدادَين. بشكل صحيح.