ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง camera3_stream_buffer

ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง camera3_stream_buffer

#include < camera3.h >

ฟิลด์ข้อมูล

camera3_stream_t stream
 
buffer_handle_t *  buffer
 
int  status
 
int  acquire_fence
 
int  release_fence
 

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

camera3_stream_buffer_t:

บัฟเฟอร์เดียวจากสตรีมกล้อง 3 ซึ่งประกอบด้วยแฮนเดิลสตรีมหลัก แฮนเดิลบัฟเฟอร์ gralloc เอง และรั้วการซิงค์

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

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

เอกสารประกอบในสนาม

int acquire_fence

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

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

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

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

>= CAMERA_DEVICE_API_VERSION_3_2:

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

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

buffer_handle_t* buffer

แฮนเดิลเนทีฟไปยังบัฟเฟอร์

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

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

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


เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้