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

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

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

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

نقاط الأداء

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

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

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

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

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