קודקים של מדיה

החל מ-Android 10 (רמת API 29) ומעלה, יש שיטות ב-MediaCodecInfo שמציגות מידע נוסף על קודק:

isSoftwareOnly()
הפונקציה מחזירה את הערך true אם הקודק פועל רק בתוכנה. אין שום ערובה לביצועי רינדור טובים בשימוש בתוכנות codec.
isHardwareAccelerated()
הפונקציה מחזירה את הערך True אם קודק מואץ על ידי חומרה.
isVendor()
הפונקציה מחזירה True אם רכיב ה-codec מסופק על ידי ספק המכשיר, או False אם הוא מסופק על ידי פלטפורמת Android.
isAlias()
MediaCodecList עשוי להכיל רשומות נוספות לאותו קודק בסיסי, באמצעות שם/שמות קודק חלופיים (כינוי/ים). השיטה הזו מחזירה true אם הקודק ברשומה הזו הוא כינוי לקודק אחר.

בנוסף, הפונקציה MediaCodec.getCanonicalName() מחזירה את שם הקודק הבסיסי של קודקים שנוצרו באמצעות כינוי.

נקודות ביצועים

נקודת ביצועים מייצגת את היכולת של קודק לעבד סרטון בגובה, ברוחב ובקצב פריימים ספציפיים. לדוגמה, נקודת הביצועים UHD_60 מייצגת סרטון באיכות אולטרה גבוהה (3840x2160 פיקסלים) שמוצג ב-60 פריימים לשנייה.

השיטה MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints() מחזירה רשימה של רשומות PerformancePoint שהקודק יכול לעבד או ללכוד.

כדי לבדוק אם PerformancePoint מכסה את PerformancePoint.covers(PerformancePoint), אפשר לקרוא לשיטה PerformancePoint.covers(PerformancePoint). לדוגמה, הפונקציה UHD_60.covers(UHD_50) מחזירה true.

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

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