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