การอ้างอิงโครงสร้าง camera3_stream_buffer
#include < camera3.h >
เขตข้อมูล | |
กล้อง3_สตรีม_t * | ลำธาร |
buffer_handle_t * | กันชน |
ภายใน | สถานะ |
ภายใน | ได้รับ_fence |
ภายใน | release_fence |
คำอธิบายโดยละเอียด
กล้อง3_stream_buffer_t:
บัฟเฟอร์เดียวจากสตรีมของ Camera3 ประกอบด้วยตัวจัดการสำหรับสตรีมพาเรนต์ ตัวจัดการสำหรับบัฟเฟอร์ graloc และรั้วการซิงค์
บัฟเฟอร์ไม่ได้ระบุว่าจะใช้สำหรับอินพุตหรือเอาต์พุต ที่กำหนดโดยประเภทสตรีมหลักและวิธีส่งบัฟเฟอร์ไปยังอุปกรณ์ HAL
เอกสารภาคสนาม
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 ไม่เคยรอบนรั้วรับบัฟเฟอร์อินพุตเนื่องจากข้อผิดพลาด รั้วการซิงค์ควรได้รับการจัดการในลักษณะเดียวกันกับวิธีจัดการบัฟเฟอร์เอาต์พุต
buffer_handle_t* บัฟเฟอร์ |
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
สถานะ int |
สถานะปัจจุบันของบัฟเฟอร์ หนึ่งในค่า camera3_buffer_status_t กรอบงานจะไม่ส่งบัฟเฟอร์ไปยัง HAL ที่อยู่ในสถานะข้อผิดพลาด ในกรณีที่ HAL ไม่สามารถเติมบัฟเฟอร์ได้ จะต้องตั้งค่าสถานะเป็น CAMERA3_BUFFER_STATUS_ERROR เมื่อส่งคืนไปยังเฟรมเวิร์กด้วย process_capture_result()
camera3_stream_t * สตรีม |
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้:
- ฮาร์ดแวร์ / libhardware / รวม / ฮาร์ดแวร์ / กล้อง 3.h