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

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

#include < camera.h >

ฟิลด์ข้อมูล

int(*  set_preview_window )(struct camera_device *, struct preview_stream_ops *window)
 
void(*  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 *user)
 
void(*  enable_msg_type )(struct camera_device *, int32_t msg_type)
 
void(*  disable_msg_type )(struct camera_device *, int32_t msg_type)
 
int(*  msg_type_enabled )(struct camera_device *, int32_t msg_type)
 
int(*  start_preview )(struct camera_device *)
 
void(*  stop_preview )(struct camera_device *)
 
int(*  preview_enabled )(struct camera_device *)
 
int(*  store_meta_data_in_buffers )(struct camera_device *, int enable)
 
int(*  start_recording )(struct camera_device *)
 
void(*  stop_recording )(struct camera_device *)
 
int(*  recording_enabled )(struct camera_device *)
 
void(*  release_recording_frame )(struct camera_device *, const void *opaque)
 
int(*  auto_focus )(struct camera_device *)
 
int(*  cancel_auto_focus )(struct camera_device *)
 
int(*  take_picture )(struct camera_device *)
 
int(*  cancel_picture )(struct camera_device *)
 
int(*  set_parameters )(struct camera_device *, const char *parms)
 
char *(*  get_parameters )(struct camera_device *)
 
void(*  put_parameters )(struct camera_device *, char *)
 
int(*  send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
 
void(*  release )(struct camera_device *)
 
int(*  dump )(struct camera_device *, int fd)
 

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

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

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

int(* auto_focus)(struct camera_device *)

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

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

int(* cancel_auto_focus)(struct camera_device *)

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

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

int(* cancel_picture)(struct camera_device *)

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

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

void(* disable_msg_type)(struct camera_device *, int32_t msg_type)

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

เมื่อได้รับการเรียกให้ disableMsgType(CAMERA_MSG_VIDEO_FRAME) แล้ว HAL ของกล้องไม่ควรใช้ไคลเอ็นต์เพื่อเรียก releaseRecordingFrame() เพื่อปล่อยเฟรมวิดีโอที่บันทึกไว้ซึ่ง 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 .

void(* enable_msg_type)(struct camera_device *, int32_t msg_type)

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

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

char*(* get_parameters)(struct camera_device *)

เรียกข้อมูลพารามิเตอร์ของกล้อง ต้องส่งบัฟเฟอร์ที่ HAL ของกล้องแสดงผลกลับไปยัง 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 camera_device *)

แสดงค่า "จริง" หากเปิดใช้ตัวอย่างเพลง

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

void(* put_parameters)(struct camera_device *, char *)

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

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

int(* recording_enabled)(struct camera_device *)

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

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

void(* release)(struct camera_device *)

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

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

void(* release_recording_frame)(struct camera_device *, const void *opaque)

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

ลูกค้า HAL ของกล้องมีหน้าที่รับผิดชอบในการปล่อยเฟรมวิดีโอที่บันทึกไว้ซึ่ง HAL ของกล้องส่งออกมาก่อนที่ HAL ของกล้องจะได้รับการเรียกให้ disableMsgType(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 .

void(* 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 *user)

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

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

ตั้งค่า 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 .

void(* stop_preview)(struct camera_device *)

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

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

void(* stop_recording)(struct camera_device *)

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

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

int(* store_meta_data_in_buffers)(struct camera_device *, int enable)

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

ควรเรียกใช้เมธอดนี้ก่อน startRecording() เพื่อให้ได้ผล

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

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

พารามิเตอร์
เปิดใช้ จริงเพื่อสั่งให้ HAL ของกล้องจัดเก็บข้อมูลเมตาในบัฟเฟอร์วิดีโอ และเท็จเพื่อสั่งให้ HAL ของกล้องจัดเก็บข้อมูล YUV จริงในบัฟเฟอร์วิดีโอ
คิกรีเทิร์น
OK on success.

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

int(* take_picture)(struct camera_device *)

ถ่ายภาพ

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


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