קודק מדיה

החל מגרסה 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.covers(PerformancePoint). לדוגמה, הפונקציה UHD_60.covers(UHD_50) מחזירה את הערך true.

מוצגת רשימה של נקודות ביצועים לכל הקודקים עם האצת חומרה. הרשימה הזו עשויה להיות ריקה אם הקודק לא עומד אפילו בנקודת הביצועים הנמוכה ביותר.

שימו לב שלמכשירים ששודרגו ל-Android 10 (רמת API 29) ואילך בלי לעדכן את תמונת הספק לא יהיו נתונים של נקודות ביצועים, כי הנתונים האלה מגיעים מ-HAL של הספק. במקרה כזה, הפונקציה getSupportedPerformancePoints() מחזירה ערך null.