camera3_stream Reference Struct

camera3_stream Reference Struct

#include < camera3.h >

שדות נתונים

int stream_type
uint32_t רוֹחַב
uint32_t גוֹבַה
int פוּרמָט
uint32_t נוֹהָג
uint32_t max_buffers
בטל* priv
android_dataspace_t data_space
int רוֹטַציָה
בטל* שמור [7]

תיאור מפורט

camera3_stream_t:

ידית לזרם קלט או פלט של מצלמה בודדת. זרם מוגדר על ידי המסגרת לפי רזולוציית המאגר והפורמט שלו, ובנוסף על ידי ה-HAL עם דגלי השימוש של gralloc וספירת המאגר המקסימלית בטיסה.

מבני הזרמים הם בבעלות ה-framework, אך מצביעים ל- camera3_stream המועברים ל-HAL על-ידי configure_streams() תקפים עד לסוף הקריאה הראשונה של configure_streams() הבאה שלא כוללת את ה- camera3_stream כארגומנט, או עד סוף הקריאה של close().

כל החברים הנשלטים על המסגרת של camera3_stream ניתנים לשינוי ברגע שה- camera3_stream מועבר לתוך configure_streams(). ה-HAL רשאי לשנות רק את הפרמטרים הנשלטים על ידי HAL במהלך קריאה ל-configure_streams(), למעט התוכן של המצביע הפרטי.

אם קריאה configure_streams() מחזירה שגיאה לא קטלנית, כל הזרמים הפעילים יישארו תקפים כאילו לא נקרא configure_streams().

נקודת הקצה של הזרם אינה גלויה למכשיר HAL של המצלמה. ב-DEVICE_API_VERSION_3_1, זה שונה כדי לשתף דגלי שימוש בזרמים שבהם המצלמה היא מפיקה (סוגי OUTPUT ו-BIDIRECTIONAL) ראה את שדה השימוש למטה.

הגדרה בשורה 1523 של קובץ camera3.h .

תיעוד שטח

android_dataspace_t data_space

שדה המתאר את תוכן המאגר. מידות הפורמט והמאגר מגדירים את פריסת הזיכרון והמבנה של מאגרי הזרם, בעוד ש-dataSpace מגדיר את המשמעות של הנתונים בתוך המאגר.

עבור רוב הפורמטים, dataSpace מגדיר את מרחב הצבע של נתוני התמונה. בנוסף, עבור פורמטים מסוימים, dataSpace מציין אם מתבקשים נתונים מבוססי תמונה או עומק. ראה system/core/include/system/graphics.h לפרטים על פורמטים וערכי DataSpace חוקיים עבור כל פורמט.

מידע על הגרסה:

< CAMERA_DEVICE_API_VERSION_3_3:

לא מוגדר ואין לגשת אליו. יש להניח ש-dataSpace הוא HAL_DATASPACE_UNKNOWN, ויש לקבוע את מרחב הצבע המתאים וכו' על פי דגלי השימוש והפורמט.

= CAMERA_DEVICE_API_VERSION_3_3:

תמיד מוגדר על ידי שירות המצלמה. HAL חייבת להשתמש ב-dataSpace זה כדי להגדיר את הזרם למרחב הצבעים הנכון, או כדי לבחור בין פלטי צבע ועומק אם הוא נתמך. ערכי מרחב הנתונים הם ההגדרות מדור קודם ב-graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

תמיד מוגדר על ידי שירות המצלמה. HAL חייבת להשתמש ב-dataSpace זה כדי להגדיר את הזרם למרחב הצבעים הנכון, או כדי לבחור בין פלטי צבע ועומק אם הוא נתמך. ערכי מרחב הנתונים נקבעים באמצעות הגדרות מרחב הנתונים V0 ב-graphics.h

הגדרה בשורה 1648 של קובץ camera3.h .

פורמט int

פורמט הפיקסלים למאגרים בזרם זה. פורמט הוא ערך מרשימת HAL_PIXEL_FORMAT_* ב-system/core/include/system/graphics.h, או מכותרות ספציפיות למכשיר.

אם נעשה שימוש ב-HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, מודול הפלטפורמה gralloc יבחר פורמט המבוסס על דגלי השימוש שסופקו על ידי התקן המצלמה ונקודת הקצה השנייה של הזרם.

<= CAMERA_DEVICE_API_VERSION_3_1:

התקן HAL של המצלמה חייב לבדוק את המאגרים שנמסרו לו בקריאה הבאה register_stream_buffers() כדי לקבל את פרטי הפורמט הספציפי למימוש, במידת הצורך.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() לא ייקרא על ידי המסגרת, כך שה-HAL צריך להגדיר את צינור ה-ISP והחיישנים בהתבסס אך ורק על הגדלים, דגלי השימוש והפורמטים עבור הזרמים המוגדרים.

הגדרה בשורה 1565 של קובץ camera3.h .

uint32_t גובה

הגובה בפיקסלים של המאגרים בזרם זה

הגדרה בשורה 1542 של קובץ camera3.h .

uint32_t max_buffers

המספר המרבי של מאגרים שייתכן שיהיה צורך להשאיר את מכשיר ה-HAL מחוץ לתור בו-זמנית. ייתכן שלמכשיר HAL לא יהיו יותר מאגרים בטיסה מהזרם הזה מהערך הזה.

הגדרה בשורה 1608 של קובץ camera3.h .

בטל* priv

ידית למידע פרטי HAL עבור הזרם. לא ייבדק על ידי קוד המסגרת.

הגדרה בשורה 1614 של קובץ camera3.h .

בטל* שמור[7]

הגדרה בשורה 1677 של קובץ camera3.h .

סיבוב int

סיבוב הפלט הנדרש של הזרם, אחד מערכי camera3_stream_rotation_t. זה חייב להיבדק על ידי HAL יחד עם רוחב וגובה הנחל. לדוגמה, אם הסיבוב הוא 90 מעלות ורוחב וגובה הזרם הם 720 ו-1280 בהתאמה, שירות המצלמה יספק מאגרים בגודל 720x1280, ו-HAL אמור לצלם תמונה בגודל 1280x720 ולסובב את התמונה ב-90 מעלות נגד כיוון השעון. שדה הסיבוב אינו פועל כאשר סוג הזרם מוקלט. המצלמה HAL חייבת להתעלם משדה הסיבוב עבור זרם קלט.

<= CAMERA_DEVICE_API_VERSION_3_2:

לא מוגדר ואין לגשת אליו. אסור להחיל HAL כל סיבוב על תמונות פלט.

>= CAMERA_DEVICE_API_VERSION_3_3:

תמיד מוגדר על ידי שירות המצלמה. HAL חייב לבדוק את השדה הזה במהלך תצורת הזרם ולהחזיר -EINVAL אם HAL לא יכול לבצע סיבוב כזה. HAL חייבת תמיד לתמוך ב-CAMERA3_STREAM_ROTATION_0, כך שקריאת configure_streams() אינה חייבת להיכשל עבור סיבוב לא נתמך אם שדה הסיבוב של כל הזרמים הוא CAMERA3_STREAM_ROTATION_0.

הגדרה בשורה 1674 של קובץ camera3.h .

int stream_type

סוג הזרם, אחד מערכי camera3_stream_type_t.

הגדרה בשורה 1532 של קובץ camera3.h .

שימוש uint32_t

דגלי השימוש ב-gralloc עבור זרם זה, לפי הצורך של ה-HAL. דגלי השימוש מוגדרים ב- gralloc.h (GRALLOC_USAGE_*), או בכותרות ספציפיות למכשיר.

עבור זרמי פלט, אלו הם דגלי השימוש של היצרן של HAL. עבור זרמי קלט, אלו הם דגלי השימוש לצרכן של HAL. דגלי השימוש של היצרן והצרכן ישולבו יחד ולאחר מכן יועברו למודול הפלטפורמה gralloc HAL להקצאת מאגרי gralloc לכל זרם.

מידע על הגרסה:

== CAMERA_DEVICE_API_VERSION_3_0:

אין ערך התחלתי מובטח כאשר מועבר דרך configure_streams(). HAL לא יכול להשתמש בשדה זה כקלט, ועליו לכתוב מעל שדה זה עם דגלי השימוש שלו.

>= CAMERA_DEVICE_API_VERSION_3_1:

עבור stream_type OUTPUT ו-BIDIRECTIONAL, כאשר מועברים דרך configure_streams(), הערך ההתחלתי של זה הוא דגלי השימוש של הצרכן. ה-HAL עשוי להשתמש בדגלי הצרכן הללו כדי להחליט על תצורת הזרם. עבור stream_type INPUT, כאשר הוא מועבר דרך configure_streams(), הערך ההתחלתי של זה הוא 0. עבור כל הזרמים המועברים באמצעות configure_streams(), ה-HAL חייב לכתוב מעל שדה זה עם דגלי השימוש שלו.

הגדרה בשורה 1601 של קובץ camera3.h .

uint32_t רוחב

הרוחב בפיקסלים של המאגרים בזרם זה

הגדרה בשורה 1537 של קובץ camera3.h .


התיעוד עבור מבנה זה נוצר מהקובץ הבא:
  • hardware/libhardware/include/hardware/ camera3.h