עזרה בנושא המבנה camera3_capture_request

עזרה בנושא המבנה camera3_capture_request

#include < camera3.h >

שדות נתונים

uint32_t  frame_number
 
const camera_metadata_t הגדרות
 
camera3_stream_buffer_t input_buffer
 
uint32_t  num_output_buffers
 
const camera3_stream_buffer_t output_buffers
 

תיאור מפורט

camera3_capture_request_t:

בקשה אחת לצילום תמונה/עיבוד מחדש של מאגר, שנשלחת למכשיר Camera HAL על ידי המסגרת ב-process_capture_request().

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

בתגובה, מכשיר ה-HAL של המצלמה צריך לשלוח למסגרת את המבנה camera3_capture_result באופן אסינכרוני, באמצעות הפונקציה הלא חוזרת process_capture_result().

ההגדרה מופיעה בשורה 2135 בקובץ camera3.h .

מסמכי תיעוד של שדה

uint32_t frame_number

מספר המסגרת הוא מספר שלם שמוסיף את עצמו ומוגדר על ידי המסגרת כדי לזהות באופן ייחודי את הצילום הזה. צריך להחזיר אותו בקריאה של התוצאה, והוא משמש גם לזיהוי הבקשה בהתראות אסינכררוניות שנשלחות אל camera3_callback_ops_t.notify()‎ .

ההגדרה נמצאת בשורה 2142 בקובץ camera3.h .

מאגר הנתונים של מקור הקלט שמשמש לבקשה הזו, אם יש כזה.

אם הערך של input_buffer הוא NULL, הבקשה היא לצילום חדש מהמכשיר ליצירת תמונות. אם הערך של input_buffer תקין, הבקשה היא לעיבוד מחדש של התמונה שמכילה את input_buffer.

במקרה השני, ה-HAL צריך להגדיר את release_fence של input_buffer למחסום סנכרון תקין, או ל--1 אם ה-HAL לא תומך בסנכרון, לפני שהפונקציה process_capture_request() מחזירה חזרה.

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

<= CAMERA_DEVICE_API_VERSION_3_1:

כל מאגר קלט שכלול כאן יירשם ב-HAL באמצעות register_stream_buffers() לפני שהוא ייכלל בבקשה.

>= CAMERA_DEVICE_API_VERSION_3_2:

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

ההגדרה נמצאת בשורה 2177 בקובץ camera3.h .

uint32_t num_output_buffers

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

ההגדרה מופיעה בשורה 2183 בקובץ camera3.h .

const camera3_stream_buffer_t * output_buffers

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

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

<= CAMERA_DEVICE_API_VERSION_3_1:

כל המאגרים הזמניים שכלולים כאן נרשמו ב-HAL באמצעות register_stream_buffers()‏ לפני שהם נכללו בבקשה.

>= CAMERA_DEVICE_API_VERSION_3_2:

כל אחד מהמאגרים שכלולים כאן או כולם עשויים להיות חדשים לגמרי בבקשה הזו (ולא נראו ב-HAL בעבר).

ההגדרה מופיעה בשורה 2204 בקובץ camera3.h .

const camera_metadata_t * settings

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

ההגדרה מופיעה בשורה 2151 בקובץ camera3.h .


התיעוד של המבנה הזה נוצר מהקובץ הבא: