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

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

#include < camera3.h >

เขตข้อมูล

กล้อง3_สตรีม_t * ลำธาร
buffer_handle_t * กันชน
ภายใน สถานะ
ภายใน ได้รับ_fence
ภายใน release_fence

คำอธิบายโดยละเอียด

กล้อง3_stream_buffer_t:

บัฟเฟอร์เดียวจากสตรีมของ Camera3 ประกอบด้วยตัวจัดการสำหรับสตรีมพาเรนต์ ตัวจัดการสำหรับบัฟเฟอร์ graloc และรั้วการซิงค์

บัฟเฟอร์ไม่ได้ระบุว่าจะใช้สำหรับอินพุตหรือเอาต์พุต ที่กำหนดโดยประเภทสตรีมหลักและวิธีส่งบัฟเฟอร์ไปยังอุปกรณ์ HAL

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

เอกสารภาคสนาม

int Acquis_fence

การรับรั้วการซิงค์สำหรับบัฟเฟอร์นี้ HAL ต้องรอบนรั้วนี้ fd ก่อนที่จะพยายามอ่านหรือเขียนลงในบัฟเฟอร์นี้

กรอบงานอาจถูกตั้งค่าเป็น -1 เพื่อระบุว่าไม่จำเป็นต้องรอบัฟเฟอร์นี้

เมื่อ HAL ส่งคืนบัฟเฟอร์เอาท์พุตไปยังเฟรมเวิร์กด้วย process_capture_result() จะต้องตั้งค่า Acquis_fence เป็น -1 หาก HAL ไม่เคยรอ Acqui_fence เนื่องจากข้อผิดพลาดในการกรอกบัฟเฟอร์ เมื่อเรียก process_capture_result() HAL จะต้องตั้งค่า release_fence ของบัฟเฟอร์ให้เป็น Acquis_fence ที่ส่งผ่านไปยังบัฟเฟอร์นั้น ซึ่งจะช่วยให้เฟรมเวิร์กรอบนรั้วก่อนนำบัฟเฟอร์กลับมาใช้ใหม่

สำหรับบัฟเฟอร์อินพุต HAL จะต้องไม่เปลี่ยนฟิลด์ Acquis_fence ระหว่างการเรียก process_capture_request()

>= CAMERA_DEVICE_API_VERSION_3_2:

เมื่อ HAL ส่งคืนบัฟเฟอร์อินพุตไปยังเฟรมเวิร์กด้วย process_capture_result() จะต้องตั้งค่า Acquis_fence เป็น -1 หาก HAL ไม่เคยรอบนรั้วรับบัฟเฟอร์อินพุตเนื่องจากข้อผิดพลาด รั้วการซิงค์ควรได้รับการจัดการในลักษณะเดียวกันกับวิธีจัดการบัฟเฟอร์เอาต์พุต

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

buffer_handle_t* บัฟเฟอร์

หมายเลขอ้างอิงดั้งเดิมของบัฟเฟอร์

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

int release_fence

กรอบการซิงค์รุ่นสำหรับบัฟเฟอร์นี้ HAL ต้องตั้งค่ารั้วนี้เมื่อส่งคืนบัฟเฟอร์ไปยังเฟรมเวิร์ก หรือเขียน -1 เพื่อระบุว่าไม่จำเป็นต้องรอสำหรับบัฟเฟอร์นี้

สำหรับบัฟเฟอร์เอาต์พุต ต้องตั้งค่ารั้วในอาร์เรย์ output_buffers ที่ส่งผ่านไปยัง process_capture_result()

<= CAMERA_DEVICE_API_VERSION_3_1:

สำหรับบัฟเฟอร์อินพุต ต้องตั้งค่ากรอบการเปิดตัวโดยการเรียก process_capture_request()

>= CAMERA_DEVICE_API_VERSION_3_2:

สำหรับบัฟเฟอร์อินพุต ต้องตั้งค่ารั้วใน input_buffer ที่ส่งผ่านไปยัง process_capture_result()

หลังจากส่งสัญญาณ release_fence สำหรับบัฟเฟอร์นี้แล้ว HAL ไม่ควรพยายามเข้าถึงบัฟเฟอร์นี้อีกต่อไป เนื่องจากความเป็นเจ้าของได้ถูกโอนกลับไปยังเฟรมเวิร์กโดยสมบูรณ์แล้ว

หากระบุรั้วเป็น -1 ความเป็นเจ้าของบัฟเฟอร์นี้จะถูกโอนกลับทันทีเมื่อมีการเรียก process_capture_result

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

สถานะ int

สถานะปัจจุบันของบัฟเฟอร์ หนึ่งในค่า camera3_buffer_status_t กรอบงานจะไม่ส่งบัฟเฟอร์ไปยัง HAL ที่อยู่ในสถานะข้อผิดพลาด ในกรณีที่ HAL ไม่สามารถเติมบัฟเฟอร์ได้ จะต้องตั้งค่าสถานะเป็น CAMERA3_BUFFER_STATUS_ERROR เมื่อส่งคืนไปยังเฟรมเวิร์กด้วย process_capture_result()

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

camera3_stream_t * สตรีม

หมายเลขอ้างอิงของสตรีมที่บัฟเฟอร์นี้เชื่อมโยงด้วย

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


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