การอ้างอิงโครงสร้าง camera3_capture_request

การอ้างอิงโครงสร้าง 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()

คำจำกัดความที่บรรทัด 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 *

บัฟเฟอร์การตั้งค่าประกอบด้วยพารามิเตอร์การจับและการประมวลผลสำหรับการร้องขอ ในกรณีพิเศษ บัฟเฟอร์การตั้งค่า NULL บ่งชี้ว่าการตั้งค่าเหมือนกับคำขอจับภาพที่ส่งมาล่าสุด ไม่สามารถใช้บัฟเฟอร์ NULL เป็นคำขอที่ส่งครั้งแรกหลังจากการเรียก configuration_streams()

คำจำกัดความที่บรรทัด 2151 ของไฟล์ camera3.h


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
  • ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / กล้อง 3.h