הפנייה למבנה camera3_stream_buffer
#include < camera3.h >
שדות נתונים | |
camera3_stream_t * | זרם |
buffer_handle_t * | בַּלָם |
int | סטָטוּס |
int | לרכוש_גדר |
int | שחרור_גדר |
תיאור מפורט
camera3_stream_buffer_t:
מאגר בודד מזרם מצלמה3. הוא כולל ידית לזרם האב שלו, הידית למאגר הגראלוק עצמו וגדרות סנכרון
המאגר אינו מציין אם יש להשתמש בו עבור קלט או פלט; זה נקבע לפי סוג זרם האב שלו והאופן בו מועבר המאגר להתקן HAL.
תיעוד שטח
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 לעולם לא ממתין לגדר רכישת חוצץ קלט עקב שגיאה, יש לטפל בגדרות הסנכרון באופן דומה לאופן שבו הן מטופלות עבור מאגרי פלט.
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.
מצב אינט |
camera3_stream_t * זרם |
התיעוד עבור מבנה זה נוצר מהקובץ הבא:
- hardware/libhardware/include/hardware/ camera3.h