החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
עזרה בנושא המבנה camera3_capture_request
#include <
camera3.h
>
camera3_capture_request_t:
בקשה אחת לצילום תמונה/עיבוד מחדש של מאגר, שנשלחת למכשיר Camera HAL על ידי המסגרת ב-process_capture_request().
הבקשה מכילה את ההגדרות שישמשו לצילום הזה ואת קבוצת מאגרי הפלט שבהם ייכתבו נתוני התמונה שמתקבלים. הבקשה עשויה לכלול מאגר קלט, ובמקרה כזה הבקשה היא לעיבוד מחדש של מאגר הקלט הזה במקום לצלם תמונה חדשה באמצעות חיישן המצלמה. הצילום מזוהה לפי frame_number.
בתגובה, מכשיר ה-HAL של המצלמה צריך לשלוח למסגרת את המבנה
camera3_capture_result
באופן אסינכרוני, באמצעות הפונקציה הלא חוזרת process_capture_result().
ההגדרה מופיעה בשורה
2135
בקובץ
camera3.h
.
מספר המסגרת הוא מספר שלם שמוסיף את עצמו ומוגדר על ידי המסגרת כדי לזהות באופן ייחודי את הצילום הזה. צריך להחזיר אותו בקריאה של התוצאה, והוא משמש גם לזיהוי הבקשה בהתראות אסינכררוניות שנשלחות אל
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
.
מערך של מאגרי נתונים בסטרימינג עם 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
.
מאגר ההגדרות מכיל את הפרמטרים של הצילום והעיבוד של הבקשה. במקרה מיוחד, מאגר של הגדרות NULL מציין שההגדרות זהות לבקשת הצילום האחרונה שנשלחה. אי אפשר להשתמש במאגר נתונים מסוג NULL כבקשה הראשונה שנשלחת אחרי קריאה ל-configure_streams().
ההגדרה מופיעה בשורה
2151
בקובץ
camera3.h
.
התיעוד של המבנה הזה נוצר מהקובץ הבא:
-
hardware/libhardware/include/hardware/
camera3.h
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Android Hardware Abstraction Layer: camera3_capture_request Struct Reference\n\ncamera3_capture_request Struct Reference\n========================================\n\n[Data Fields](#pub-attribs) \ncamera3_capture_request Struct Reference \n\n`\n#include \u003c\n`[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)`\n\u003e\n`\n\n|----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| uint32_t | [frame_number](/reference/hal/structcamera3__capture__request#a57cc7f4d579276167efca6cf047839b2) |\n| ||\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* | [settings](/reference/hal/structcamera3__capture__request#adccd8702a549b9f5fb98afa0c4b44a62) |\n| ||\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [input_buffer](/reference/hal/structcamera3__capture__request#ac1c94bbde71f06911c6abe85f3a44593) |\n| ||\n| uint32_t | [num_output_buffers](/reference/hal/structcamera3__capture__request#a70d2093ddb1078b68c6688b6cf923380) |\n| ||\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [output_buffers](/reference/hal/structcamera3__capture__request#ab1d50229b27a7cf28ff1374be6650fb6) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\ncamera3_capture_request_t:\n\n\nA single request for image capture/buffer reprocessing, sent to the Camera HAL device by the framework in process_capture_request().\n\n\nThe request contains the settings to be used for this capture, and the set of output buffers to write the resulting image data in. It may optionally contain an input buffer, in which case the request is for reprocessing that input buffer instead of capturing a new image with the camera sensor. The capture is identified by the frame_number.\n\n\nIn response, the camera HAL device must send a\n[camera3_capture_result](/reference/hal/structcamera3__capture__result)\nstructure asynchronously to the framework, using the process_capture_result() callback.\n\n\nDefinition at line\n[2135](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\nField Documentation\n-------------------\n\n\n|-----------------------|\n| uint32_t frame_number |\n\n\nThe frame number is an incrementing integer set by the framework to uniquely identify this capture. It needs to be returned in the result call, and is also used to identify the request in asynchronous notifications sent to\n[camera3_callback_ops_t.notify()](/reference/hal/structcamera3__callback__ops#a6d702d6e962f95105b984b17462619b3)\n.\n\n\nDefinition at line\n[2142](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------|\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* input_buffer |\n\n\nThe input stream buffer to use for this request, if any.\n\n\nIf input_buffer is NULL, then the request is for a new capture from the imager. If input_buffer is valid, the request is for reprocessing the image contained in input_buffer.\n\n\nIn the latter case, the HAL must set the release_fence of the input_buffer to a valid sync fence, or to -1 if the HAL does not support sync, before process_capture_request() returns.\n\n\nThe HAL is required to wait on the acquire sync fence of the input buffer before accessing it.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAny input buffer included here will have been registered with the HAL through register_stream_buffers() before its inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nThe buffers will not have been pre-registered with the HAL. Subsequent requests may reuse buffers, or provide entirely new buffers.\n\n\nDefinition at line\n[2177](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------|\n| uint32_t num_output_buffers |\n\n\nThe number of output buffers for this capture request. Must be at least 1.\n\n\nDefinition at line\n[2183](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* output_buffers |\n\n\nAn array of num_output_buffers stream buffers, to be filled with image data from this capture/reprocess. The HAL must wait on the acquire fences of each stream buffer before writing to them.\n\n\nThe HAL takes ownership of the actual buffer_handle_t entries in output_buffers; the framework does not access them until they are returned in a camera3_capture_result_t.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAll the buffers included here will have been registered with the HAL through register_stream_buffers() before their inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nAny or all of the buffers included here may be brand new in this request (having never before seen by the HAL).\n\n\nDefinition at line\n[2204](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* settings |\n\n\nThe settings buffer contains the capture and processing parameters for the request. As a special case, a NULL settings buffer indicates that the settings are identical to the most-recently submitted capture request. A NULL buffer cannot be used as the first submitted request after a configure_streams() call.\n\n\nDefinition at line\n[2151](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)"]]