הפנייה למבנה camera3_stream_buffer

הפנייה למבנה camera3_stream_buffer

#include < camera3.h >

שדות נתונים

camera3_stream_t * זרם
buffer_handle_t * בַּלָם
int סטָטוּס
int לרכוש_גדר
int שחרור_גדר

תיאור מפורט

camera3_stream_buffer_t:

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

המאגר אינו מציין אם יש להשתמש בו עבור קלט או פלט; זה נקבע לפי סוג זרם האב שלו והאופן בו מועבר המאגר להתקן HAL.

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

תיעוד שטח

int acquisit_fence

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

המסגרת עשויה להיות מוגדרת ל-1 כדי לציין שאין צורך בהמתנה למאגר הזה.

כאשר ה-HAL מחזיר מאגר פלט למסגרת עם process_capture_result(), יש להגדיר את ה-acquis_fence ל-1. אם ה-HAL לעולם לא ממתין ל-acquisit_fence עקב שגיאה במילוי מאגר, בעת קריאה ל-process_capture_result() ה-HAL חייב להגדיר את release_fence של המאגר להיות ה-acquisit_fence המועבר אליו על ידי ה-framework. זה יאפשר למסגרת להמתין על הגדר לפני שימוש חוזר במאגר.

עבור מאגרי קלט, ה-HAL לא חייב לשנות את שדה ה-acquisition_fence במהלך הקריאה process_capture_request() .

>= CAMERA_DEVICE_API_VERSION_3_2:

כאשר ה-HAL מחזיר מאגר קלט למסגרת עם process_capture_result(), יש להגדיר את ה-acquis_fence ל-1. אם ה-HAL לעולם לא ממתין לגדר רכישת חוצץ קלט עקב שגיאה, יש לטפל בגדרות הסנכרון באופן דומה לאופן שבו הן מטופלות עבור מאגרי פלט.

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

buffer_handle_t* מאגר

הידית המקורית למאגר

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

int release_fence

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

עבור מאגרי הפלט, יש להגדיר את הגדרות במערך output_buffers המועבר ל-proces_capture_result().

<= CAMERA_DEVICE_API_VERSION_3_1:

עבור מאגר הקלט, יש להגדיר את גדר השחרור על ידי הקריאה process_capture_request() .

>= CAMERA_DEVICE_API_VERSION_3_2:

עבור מאגר הקלט, יש להגדיר את הגדרות ב-input_buffer המועבר ל-proces_capture_result().

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

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

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

מצב אינט

המצב הנוכחי של המאגר, אחד מערכי camera3_buffer_status_t. המסגרת לא תעביר חוצצים ל-HAL שנמצאים במצב שגיאה. במקרה שלא ניתן היה למלא מאגר על ידי ה-HAL, הסטטוס שלו חייב להיות מוגדר ל-CAMERA3_BUFFER_STATUS_ERROR כאשר הוא מוחזר למסגרת עם process_capture_result().

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

הידית של הזרם אליו משויך המאגר הזה

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


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