برامج ترميز الوسائط

بدءًا من Android 10 (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث، تتوفّر طُرق في MediaCodecInfo تكشف عن مزيد من المعلومات حول برنامج ترميز:

isSoftwareOnly()
تعرض هذه السمة القيمة "صحيح" إذا كان برنامج الترميز يعمل في البرنامج فقط. لا تقدّم برامج الترميز أي ضمانات بشأن أداء المعالجة.
isHardwareAccelerated()
تعرض True إذا كان برنامج ترميز يتم تسريعه بواسطة الأجهزة.
isVendor()
تعرض القيمة true إذا كان برنامج الترميز مقدَّمًا من قِبل موفِّر الجهاز أو false إذا كان مقدَّمًا من نظام التشغيل Android.
isAlias()
MediaCodecList قد يحتوي على إدخالات إضافية لبرنامج الترميز الأساسي نفسه باستخدام أسماء بديلة لبرنامج الترميز (أسماء بديلة). تُعرِض هذه الطريقة القيمة "صحيح" إذا كان ملف الترميز في هذا الإدخال هو ملف ترميز بديل لملف ترميز آخر.

بالإضافة إلى ذلك، يعرض الإجراء MediaCodec.getCanonicalName() اسم ترميز الفيديو الأساسي لبرامج الترميز التي تم إنشاؤها من خلال الاسم المعرِّف.

نقاط الأداء

تمثّل نقطة الأداء قدرة برنامج الترميز على عرض الفيديو بدرجة محددة للارتفاع والعرض وعدد اللقطات في الثانية. على سبيل المثال، تمثل نقطة الأداء UHD_60 فيديو بدقة فائقة (3840×2160 بكسل) يتم عرضه بمعدّل 60 لقطة في الثانية.

تُرجع الطريقة MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() قائمة بتسجيلات PerformancePoint يمكن لبرنامج الترميز عرضها أو تسجيلها.

يمكنك التحقّق مما إذا كان PerformancePoint معيّنًا يغطي PerformancePoint آخر من خلال الاتصال بالرقم التالي: PerformancePoint.covers(PerformancePoint). على سبيل المثال، يعرض UHD_60.covers(UHD_50) القيمة "صحيح".

يتم توفير قائمة بنقاط الأداء لجميع برامج الترميز المُسرَّعة بالأجهزة. وقد تكون هذه القائمة فارغة إذا لم يستوفِ برنامج الترميز أدنى نقطة أداء قياسية.

يُرجى العِلم أنّ الأجهزة التي تمت ترقيتها إلى Android 10 (المستوى 29 من واجهة برمجة التطبيقات) والإصدارات الأحدث بدون تعديل صورة المورّد لن تتضمّن بيانات نقاط الأداء، لأنّ هذه البيانات تأتي من HAL الخاص بالمورّد. في هذه الحالة، يعرض getSupportedPerformancePoints() قيمة فارغة.