يهدف هذا المستند إلى مساعدة مصنّعي الأجهزة الأصلية (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_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 إذا لم يتم ضبط هذين الإعدادَين بشكل صحيح.