ข้อมูลอ้างอิงเกี่ยวกับโครงสร้าง camera2_stream_ops
#include <
camera2.h
>
ฟิลด์ข้อมูล |
|
int(* | dequeue_buffer )(const struct camera2_stream_ops *w, buffer_handle_t **buffer) |
int(* | enqueue_buffer )(const struct camera2_stream_ops *w, int64_t timestamp, buffer_handle_t *buffer) |
int(* | cancel_buffer )(const struct camera2_stream_ops *w, buffer_handle_t *buffer) |
int(* | set_crop )(const struct camera2_stream_ops *w, int left, int top, int right, int bottom) |
คำอธิบายโดยละเอียด
อินเทอร์เฟซคิวสตรีมรูปภาพเอาต์พุต ชุดเมธอดเหล่านี้จะส่งไปยังอุปกรณ์ HAL ใน allocate_stream() และใช้เพื่อโต้ตอบกับคิวบัฟเฟอร์ gralloc สำหรับสตรีมนั้น ระบบอาจไม่เรียกใช้จนกว่า allocate_stream จะแสดงผล
เอกสารประกอบในสนาม
int(* cancel_buffer)(const struct camera2_stream_ops *w, buffer_handle_t *buffer) |
int(* dequeue_buffer)(const struct camera2_stream_ops *w, buffer_handle_t **buffer) |
รับบัฟเฟอร์เพื่อเติมจากคิว ขนาดและรูปแบบของบัฟเฟอร์จะคงที่สำหรับสตรีมหนึ่งๆ (กำหนดไว้ใน allocate_stream) และควรค้นหา Stride จากโมดูล gralloc ของแพลตฟอร์ม ระบบจะจัดสรรบัฟเฟอร์ gralloc ตาม Flag การใช้งานที่ allocate_stream ระบุไว้ และระบบจะล็อกบัฟเฟอร์ไว้เพื่อใช้งาน
int(* enqueue_buffer)(const struct camera2_stream_ops *w, int64_t timestamp, buffer_handle_t *buffer) |
พุชบัฟเฟอร์ที่เต็มแล้วไปยังสตรีมเพื่อให้ผู้บริโภคใช้
การประทับเวลาแสดงเวลาเริ่มต้นการเปิดรับแสงของแถวแรกของรูปภาพ โดยต้องมาจากนาฬิกาแบบไม่ผันผวนและวัดเป็นนาโนวินาที การประทับเวลาไม่จำเป็นต้องเปรียบเทียบกันได้ระหว่างกล้องที่แตกต่างกัน หรืออินสแตนซ์ต่อเนื่องของกล้องตัวเดียวกัน อย่างไรก็ตาม ข้อมูลต้องเปรียบเทียบได้ระหว่างสตรีมจากกล้องเดียวกัน หากการบันทึก 1 ครั้งสร้างบัฟเฟอร์สำหรับสตรีมหลายรายการ สตรีมแต่ละรายการต้องมีการประทับเวลาเดียวกันสำหรับบัฟเฟอร์นั้น และการประทับเวลาต้องตรงกับการประทับเวลาในข้อมูลเมตาของเฟรมเอาต์พุต
int(* set_crop)(const struct camera2_stream_ops *w, int left, int top, int right, int bottom) |
เอกสารประกอบสำหรับโครงสร้างนี้สร้างขึ้นจากไฟล์ต่อไปนี้
- hardware/libhardware/include/hardware/ camera2.h