ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ข้อมูลอ้างอิง Struct camera3_capture_request
#include <
camera3.h
>
camera3_capture_request_t:
คำขอเดียวสำหรับการจับภาพ/การประมวลผลบัฟเฟอร์อีกครั้ง ซึ่งเฟรมเวิร์กส่งไปยังอุปกรณ์ 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 เป็น Sync Fence ที่ถูกต้อง หรือเป็น -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)"]]