יחסי תלות של ספקי SoC לניהול משאבי מדיה

המסמך הזה נועד לעזור לספקי מערכת על שבב (SoC) להטמיע בצורה נכונה תמיכה בעדיפות, בקצב הפעלה ובחיבורים הנדרשים ל-Android Media Resource Manager.

OMX_ErrorInsufficientResources

רכיב הקודק צריך להחזיר את הערך OMX_ErrorInsufficientResources ב-GetHandle,‏ Init, ‏ UseBuffer, ‏ AllocateBuffer או במעבר מצב אם הכישלון נובע ממחסור במשאבים. מנהל משאבי המדיה ישתמש בקוד השגיאה כאינדיקטור לאפשרות של שימוש מוקדם במשאבי המדיה על פני תהליכים אחרים עם קדימות נמוכה יותר.

יש בדיקה של Android Compatibility Test Suite‏ (CTS) שמקצה, מגדירה ומפעילה כל קודק שוב ושוב עד שמופיעה הערך catching OMX_ErrorInsufficientResources (הצלחה) או שגיאה אחרת (כישלון).

OMX_IndexConfigPriority

ההגדרה הזו מאפשרת לאפליקציה לתאר את סדר העדיפויות הרצוי לקודק.

הערך המשויך הוא מספר שלם. ככל שהערך גבוה יותר, כך העדיפות נמוכה יותר. בשלב הזה יש תמיכה רק בשתי רמות:

  • 0: עדיפות בזמן אמת – המשמעות היא שהקודק צריך לתמוך בהגדרת הביצועים הנתונה (למשל, קצב פריימים) בזמן אמת. המערכת תשתמש בנתונים האלה רק להפעלה ולצילום של מדיה, וייתכן גם בתרחישי תקשורת בזמן אמת אם הביצועים של 'לפי יכולת' לא מתאימים.
  • 1: עדיפות ללא זמן אמת (לפי יכולת). זהו ערך ברירת המחדל.

מומלץ לספקים להשתמש בנתון הזה כטיפ להגדרת הקודק ולתכנון המשאבים – כדי להבין את הדרישות של האפליקציה בזמן אמת.

אל תניחו שהעדיפות בזמן אמת היא 1, אלא אם היא מוגדרת כ-0.

OMX_IndexConfigOperatingRate

ההגדרה הזו מאפשרת לאפליקציה לתאר את קצב הפריימים התפעולי של הווידאו או את קצב הדגימה של האודיו שבו הקודק יצטרך לפעול.

האפשרות הזו משמשת במקרים כמו צילום וידאו במהירות גבוהה או בהילוך איטי, שבהם פורמט המקודד של הווידאו מכיל את קצב ההפעלה היעד (למשל 30fps), אבל הרכיב צריך להיות מסוגל לטפל בקצב הצילום התפעולי הגבוה (למשל 240fps).

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