החל מגרסה 10 של Android (רמת API 29) ואילך, יש שיטות
MediaCodecInfo
ש
לחשוף מידע נוסף על קודק:
isSoftwareOnly()
- מחזיר True אם הקודק פועל בתוכנה בלבד. רכיבי קודק התוכנה לא מניבים באחריות בנוגע לביצועי הרינדור.
isHardwareAccelerated()
- מוחזר True אם הקודק מואץ באמצעות חומרה.
isVendor()
- חוזרת true אם הקודק סופק על ידי ספק המכשיר או False אם צוין מבוססת על פלטפורמת Android.
isAlias()
MediaCodecList
עשוי להכיל רשומות נוספות לאותו קודק בסיסי באמצעות שמות קודק חלופיים (כינויים). השיטה הזו מחזירה את הערך True אם הקודק ברשומה הזו הוא כינוי של קודק אחר.
In addition,
MediaCodec.getCanonicalName()
מחזירה את שם הקודק הבסיסי עבור קודק שנוצר באמצעות כינוי.
נקודות ביצועים
נקודת ביצועים מייצגת את היכולת של קודק לעבד סרטון במיקום ספציפי
גובה, רוחב וקצב פריימים. לדוגמה, נקודת הביצוע של UHD_60
מייצג וידאו באיכות Ultra High Definition (3,840x2,160 פיקסלים) שעבר רינדור ב-60 פריימים
לשנייה.
השיטה
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
מחזירה רשימה של
PerformancePoint
שהקודק יכול לעבד או לתעד.
ניתן לבדוק אם PerformancePoint
מסוים מכסה אחר על ידי התקשרות
PerformancePoint.covers(PerformancePoint)
.
לדוגמה, UHD_60.covers(UHD_50)
מחזירה True.
מסופקת רשימה של נקודות ביצועים לכל רכיבי הקודק שמואצים באמצעות חומרה. זו עשויה להיות רשימה ריקה אם הקודק לא עומד גם בסטנדרט הנמוך ביותר נקודת ביצועים.
לתשומת ליבכם: מכשירים ששודרגו ל-Android 10 (רמת API 29) ואילך,
העדכון של תמונת הספק לא יכלול נתונים של נקודות ביצועים, כי
מגיעים מ-HAL של הספק. במקרה הזה, getSupportedPerformancePoints()
הפונקציה מחזירה את הערך null.