ข้อมูลอ้างอิง Struct camera3_capture_request
#include <
camera3.h
>
ฟิลด์ข้อมูล |
|
uint32_t | frame_number |
const camera_metadata_t * | settings |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
คำอธิบายโดยละเอียด
camera3_capture_request_t:
คำขอเดียวสำหรับการจับภาพ/การประมวลผลบัฟเฟอร์อีกครั้ง ซึ่งเฟรมเวิร์กส่งไปยังอุปกรณ์ HAL ของกล้องใน process_capture_request()
คำขอมีการตั้งค่าที่จะใช้สำหรับการจับภาพนี้ และชุดบัฟเฟอร์เอาต์พุตที่จะเขียนข้อมูลรูปภาพที่ได้ โดยอาจมีบัฟเฟอร์อินพุต (ไม่บังคับ) ในกรณีนี้คําขอจะส่งเพื่อประมวลผลบัฟเฟอร์อินพุตนั้นอีกครั้งแทนการจับภาพใหม่ด้วยเซ็นเซอร์กล้อง การจับภาพจะระบุด้วย frame_number
อุปกรณ์ HAL ของกล้องต้องส่งโครงสร้าง camera3_capture_result แบบแอซิงโครนัสไปยังเฟรมเวิร์กโดยใช้การเรียกกลับ process_capture_result()
เอกสารประกอบในสนาม
uint32_t frame_number |
หมายเลขเฟรมคือจำนวนเต็มแบบเพิ่มค่าที่เฟรมเวิร์กตั้งค่าไว้เพื่อระบุการจับภาพนี้โดยไม่ซ้ำกัน โดยจะต้องส่งคืนในการเรียกผลลัพธ์ และจะใช้เพื่อระบุคำขอในการแจ้งเตือนแบบไม่พร้อมกันที่ส่งไปยัง camera3_callback_ops_t.notify() ด้วย
camera3_stream_buffer_t * input_buffer |
บัฟเฟอร์สตรีมอินพุตที่จะใช้กับคำขอนี้ (หากมี)
หาก 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 คำขอที่ตามมาอาจใช้บัฟเฟอร์ซ้ำหรือระบุบัฟเฟอร์ใหม่ทั้งหมดก็ได้
uint32_t num_output_buffers |
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 ไม่เคยเห็นมาก่อน)
const camera_metadata_t * settings |
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
- hardware/libhardware/include/hardware/ camera3.h