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

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

#include < camera.h >

เขตข้อมูล

อินท์(* set_preview_window ) (struct camera_device *, struct Preview_stream_ops * หน้าต่าง)
เป็นโมฆะ(* set_callbacks ) (struct กล้อง_อุปกรณ์ *, กล้อง_notify_callback notify_cb, กล้อง_data_callback data_cb, กล้อง_data_timestamp_callback data_cb_timestamp, กล้อง_request_memory get_memory, เป็นโมฆะ * ผู้ใช้)
เป็นโมฆะ(* Enable_msg_type ) (struct camera_device *, int32_t msg_type)
เป็นโมฆะ(* Disable_msg_type ) (struct camera_device *, int32_t msg_type)
อินท์(* msg_type_enabled )(struct camera_device *, int32_t msg_type)
อินท์(* start_preview )(struct camera_device *)
เป็นโมฆะ(* stop_preview ) (struct camera_device *)
อินท์(* Preview_enabled )(struct กล้อง_อุปกรณ์ *)
อินท์(* store_meta_data_in_buffers ) (struct camera_device *, เปิดใช้งาน int)
อินท์(* start_recording )(struct กล้อง_อุปกรณ์ *)
เป็นโมฆะ(* stop_recording ) (struct camera_device *)
อินท์(* การบันทึก_เปิดใช้งาน )(struct camera_device *)
เป็นโมฆะ(* release_recording_frame ) (struct camera_device *, const void *ทึบแสง)
อินท์(* auto_focus ) (struct camera_device *)
อินท์(* cancel_auto_focus ) (struct camera_device *)
อินท์(* take_picture ) (struct camera_device *)
อินท์(* cancel_picture ) (struct กล้อง_อุปกรณ์ *)
อินท์(* set_parameters ) (struct camera_device *, const char *parms)
ถ่าน *(* get_parameters ) (struct camera_device *)
เป็นโมฆะ(* put_parameters ) (struct camera_device *, char *)
อินท์(* send_command ) (struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
เป็นโมฆะ(* ปล่อย )(struct camera_device *)
อินท์(* ดัมพ์ )(struct camera_device *, int fd)

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

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

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

int(* auto_focus)(struct camera_device *)

เริ่มโฟกัสอัตโนมัติ รูทีนการโทรกลับการแจ้งเตือนจะถูกเรียกด้วย CAMERA_MSG_FOCUS หนึ่งครั้งเมื่อโฟกัสเสร็จสิ้น autoFocus() จะถูกเรียกอีกครั้งหากต้องการโฟกัสอัตโนมัติอื่น

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

int(* cancel_auto_focus)(struct camera_device *)

ยกเลิกฟังก์ชั่นโฟกัสอัตโนมัติ หากระบบโฟกัสอัตโนมัติยังดำเนินการอยู่ ฟังก์ชั่นนี้จะยกเลิก ไม่ว่าระบบโฟกัสอัตโนมัติจะดำเนินการอยู่หรือไม่ก็ตาม ฟังก์ชั่นนี้จะคืนตำแหน่งโฟกัสกลับเป็นค่าเริ่มต้น หากกล้องไม่รองรับการโฟกัสอัตโนมัติ แสดงว่าไม่ต้องดำเนินการใดๆ

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

int(* cancel_picture)(struct กล้อง_อุปกรณ์ *)

ยกเลิกภาพที่เริ่มต้นด้วย takePicture การเรียกวิธีนี้เมื่อไม่มีการถ่ายภาพถือเป็นการกระทำที่ไม่จำเป็น

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

เป็นโมฆะ (* Disable_msg_type) (struct camera_device *, int32_t msg_type)

ปิดการใช้งานข้อความหรือชุดข้อความ

เมื่อได้รับการเรียกให้ปิดการใช้งาน MsgType(CAMERA_MSG_VIDEO_FRAME) กล้อง HAL ไม่ควรพึ่งพาไคลเอ็นต์ในการเรียก releaseRecordingFrame() เพื่อปล่อยเฟรมการบันทึกวิดีโอที่ส่งออกโดย Cameral HAL ก่อนและหลังการเรียก DisableMsgType(CAMERA_MSG_VIDEO_FRAME) ไคลเอนต์กล้อง HAL จะต้องไม่แก้ไข/เข้าถึงเฟรมการบันทึกวิดีโอใด ๆ หลังจากเรียก DisableMsgType(CAMERA_MSG_VIDEO_FRAME)

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

int(* dump)(struct camera_device *, int fd)

สถานะการถ่ายโอนข้อมูลของฮาร์ดแวร์กล้อง

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

เป็นโมฆะ (* Enable_msg_type) (struct camera_device *, int32_t msg_type)

ฟังก์ชันสามฟังก์ชันต่อไปนี้ใช้ msg_type ซึ่งเป็นบิตมาสก์ของข้อความที่กำหนดไว้ใน include/ui/Camera.h Enable a message หรือชุดข้อความ

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

ถ่าน * (* get_parameters) (struct camera_device *)

ดึงข้อมูลพารามิเตอร์ของกล้อง บัฟเฟอร์ที่ส่งคืนโดยกล้อง HAL จะต้องส่งคืนกลับไปพร้อมกับ put_parameters หาก put_parameters ไม่ใช่ NULL

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

int(* msg_type_enabled)(struct camera_device *, int32_t msg_type)

สอบถามว่ามีการเปิดใช้งานข้อความหรือชุดข้อความหรือไม่ โปรดทราบว่าการดำเนินการนี้ทำงานเป็น AND หากข้อความใดๆ ที่สอบถามปิดอยู่ ก็จะส่งกลับค่าเท็จ

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

int(* Preview_enabled)(struct กล้อง_อุปกรณ์ *)

คืนค่าเป็นจริงหากเปิดใช้งานการแสดงตัวอย่าง

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

เป็นโมฆะ (* put_parameters) (struct camera_device *, char *)

กล้อง HAL ใช้หน่วยความจำของตัวเองเพื่อส่งพารามิเตอร์ให้เราเมื่อเราเรียก get_parameters ใช้ฟังก์ชันนี้เพื่อคืนหน่วยความจำกลับไปยังกล้อง HAL หาก put_parameters ไม่ใช่ NULL หาก put_parameters เป็น NULL คุณจะต้องใช้ free() เพื่อปล่อยหน่วยความจำ

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

int(* การบันทึก_เปิดใช้งาน)(struct กล้อง_อุปกรณ์ *)

คืนค่าเป็นจริงหากเปิดใช้งานการบันทึก

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

เป็นโมฆะ (* ปล่อย) (struct camera_device *)

ปล่อยทรัพยากรฮาร์ดแวร์ที่เป็นของวัตถุนี้ โปรดทราบว่าสิ่งนี้ ไม่ ได้ทำใน destructor

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

เป็นโมฆะ (* release_recording_frame) (struct camera_device *, const void * ทึบแสง)

ปล่อยเฟรมบันทึกที่ CAMERA_MSG_VIDEO_FRAME ส่งคืนก่อนหน้านี้

เป็นความรับผิดชอบของไคลเอ็นต์กล้อง HAL ในการปล่อยเฟรมการบันทึกวิดีโอที่ส่งโดยกล้อง HAL ก่อนที่กล้อง HAL จะได้รับการเรียกให้ปิดการใช้งาน MsgType(CAMERA_MSG_VIDEO_FRAME) หลังจากได้รับการเรียกให้ปิดการใช้งาน MsgType(CAMERA_MSG_VIDEO_FRAME) กล้อง HAL มีหน้าที่รับผิดชอบในการจัดการวงจรชีวิตของเฟรมการบันทึกวิดีโอ

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

int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)

ส่งคำสั่งไปยังไดรเวอร์กล้อง

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

เป็นโมฆะ (* set_callbacks) (struct camera_device *, camera_notify_callback notify_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void * ผู้ใช้)

ตั้งค่าการแจ้งเตือนและการโทรกลับข้อมูล

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

int(* set_parameters)(struct camera_device *, const char *parms)

ตั้งค่าพารามิเตอร์ของกล้อง ซึ่งจะส่งคืน BAD_VALUE หากพารามิเตอร์ใดๆ ไม่ถูกต้องหรือไม่ได้รับการสนับสนุน

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

int(* set_preview_window)(struct camera_device *, struct Preview_stream_ops *หน้าต่าง)

ตั้งค่า ANativeWindow ที่จะส่งเฟรมแสดงตัวอย่าง

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

int(* start_preview)(struct camera_device *)

เริ่มโหมดแสดงตัวอย่าง

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

int(* start_recording)(struct camera_device *)

เริ่มโหมดบันทึก เมื่อมีภาพที่บันทึกไว้ ข้อความ CAMERA_MSG_VIDEO_FRAME จะถูกส่งไปพร้อมกับเฟรมที่เกี่ยวข้อง ทุกเฟรมบันทึกจะต้องได้รับการเผยแพร่โดยไคลเอนต์กล้อง HAL ผ่าน releaseRecordingFrame() ก่อนที่ไคลเอนต์จะเรียก DisableMsgType(CAMERA_MSG_VIDEO_FRAME) หลังจากที่ไคลเอ็นต์เรียก DisableMsgType(CAMERA_MSG_VIDEO_FRAME) กล้อง HAL มีหน้าที่รับผิดชอบในการจัดการวงจรชีวิตของเฟรมการบันทึกวิดีโอ และไคลเอ็นต์จะต้องไม่แก้ไข/เข้าถึงเฟรมการบันทึกวิดีโอใดๆ

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

เป็นโมฆะ (* stop_preview) (struct camera_device *)

หยุดการแสดงตัวอย่างที่เริ่มต้นไว้ก่อนหน้านี้

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

เป็นโมฆะ (* stop_recording) (struct camera_device *)

หยุดการบันทึกที่เริ่มไว้ก่อนหน้านี้

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

int (* store_meta_data_in_buffers) (struct camera_device *, เปิดใช้งาน int)

ขอให้กล้อง HAL จัดเก็บข้อมูลเมตาหรือข้อมูล YUV จริงในบัฟเฟอร์วิดีโอที่ส่งออกผ่าน CAMERA_MSG_VIDEO_FRAME สำหรับเซสชันการบันทึก หากไม่ได้เรียก ลักษณะการทำงานของ HAL เริ่มต้นของกล้องคือการจัดเก็บข้อมูล YUV จริงไว้ในบัฟเฟอร์วิดีโอ

ควรเรียกเมธอดนี้ก่อน startRecording() เพื่อให้มีประสิทธิภาพ

หากข้อมูลเมตาถูกจัดเก็บไว้ในบัฟเฟอร์วิดีโอ ขึ้นอยู่กับตัวรับของบัฟเฟอร์วิดีโอในการตีความเนื้อหาและค้นหาข้อมูลเฟรมจริงด้วยความช่วยเหลือของข้อมูลเมตาในบัฟเฟอร์ วิธีการดำเนินการนี้อยู่นอกเหนือขอบเขตของวิธีนี้

HAL ของกล้องบางตัวอาจไม่รองรับการจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอ แต่ HAL ของกล้องทั้งหมดควรรองรับการจัดเก็บข้อมูล YUV จริงในบัฟเฟอร์วิดีโอ หากกล้อง HAL ไม่รองรับการจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอเมื่อมีการร้องขอ จะต้องส่งคืน INVALID_OPERATION HAL ของกล้องมีประโยชน์มากในการส่งข้อมูลเมตามากกว่าข้อมูลเฟรมจริงไปยังตัวเข้ารหัสวิดีโอโดยตรง เนื่องจากปริมาณของข้อมูลเฟรมที่ไม่มีการบีบอัดอาจมีขนาดใหญ่มากหากวิดีโอมีขนาดใหญ่

พารามิเตอร์
เปิดใช้งาน หากเป็นจริง ให้สั่งให้กล้อง HAL จัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอ false เพื่อสั่งให้กล้อง HAL จัดเก็บข้อมูล YUV จริงในบัฟเฟอร์วิดีโอ
การส่งคืน
โอเคกับความสำเร็จ

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

int(* take_picture)(struct กล้อง_อุปกรณ์ *)

ถ่ายภาพ.

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


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