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