רכיבי Codec של מדיה

החל מגרסה 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.