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

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

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

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

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

נקודת ביצועים מייצגת את היכולת של קודק לעבד סרטון בגובה, ברוחב ובקצב פריימים ספציפיים. לדוגמה, נקודת הביצועים UHD_60 מייצגת סרטון באיכות אולטרה גבוהה (UHD) ‏(3,840x2,160 פיקסלים) שעבר עיבוד בקצב של 60 פריימים לשנייה.

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

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

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

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