Tài liệu tham khảo về cấu trúc camera_device_ops

Tài liệu tham khảo về cấu trúc camera_device_ops

#include < camera.h >

Trường dữ liệu

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)
 

Nội dung mô tả chi tiết

Định nghĩa tại dòng 99 của tệp camera.h .

Tài liệu về trường

int(* auto_focus)(struct camera_device *)

Bắt đầu tự động lấy nét, quy trình gọi lại thông báo được gọi bằng CAMERA_MSG_FOCUS một lần khi quá trình lấy nét hoàn tất. autoFocus() sẽ được gọi lại nếu cần lấy nét tự động khác.

Định nghĩa tại dòng 227 của tệp camera.h .

int(* cancel_auto_focus)(struct camera_device *)

Huỷ chức năng tự động lấy nét. Nếu tính năng tự động lấy nét vẫn đang diễn ra, thì hàm này sẽ huỷ tính năng đó. Cho dù tính năng tự động lấy nét đang diễn ra hay không, hàm này sẽ trả về vị trí lấy nét về vị trí mặc định. Nếu máy ảnh không hỗ trợ tính năng tự động lấy nét, thì bạn không thể thực hiện thao tác này.

Định nghĩa tại dòng 235 của tệp camera.h .

int(* cancel_picture)(struct camera_device *)

Huỷ ảnh đã bắt đầu bằng takePicture. Việc gọi phương thức này khi không có ảnh nào được chụp sẽ không có tác dụng.

Định nghĩa tại dòng 246 của tệp camera.h .

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

Tắt một thông báo hoặc một nhóm thông báo.

Sau khi nhận được lệnh gọi đến disableMsgType(CAMERA_MSG_VIDEO_FRAME), HAL máy ảnh không được dựa vào ứng dụng của mình để gọi releaseRecordingFrame() nhằm phát hành các khung hình quay video do HAL máy ảnh gửi trước và sau lệnh gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME). Ứng dụng HAL máy ảnh không được sửa đổi/truy cập vào bất kỳ khung hình quay video nào sau khi gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME).

Định nghĩa tại dòng 132 của tệp camera.h .

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

Trạng thái kết xuất của phần cứng máy ảnh

Định nghĩa tại dòng 282 của tệp camera.h .

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

Ba hàm sau đây đều lấy một msg_type, đây là một mặt nạ bit của các thông báo được xác định trong include/ui/Camera.h Bật một thông báo hoặc một tập hợp thông báo.

Định nghĩa tại dòng 120 của tệp camera.h .

char*(* get_parameters)(struct camera_device *)

Truy xuất các thông số của máy ảnh. Bạn phải trả về vùng đệm do HAL máy ảnh trả về bằng put_parameters, nếu put_parameters không phải là NULL.

Định nghĩa tại dòng 258 của tệp camera.h .

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

Truy vấn xem một thông báo hoặc một nhóm thông báo có được bật hay không. Xin lưu ý rằng hàm này hoạt động như một hàm AND, nếu bất kỳ thông báo nào được truy vấn đang tắt, thì hàm này sẽ trả về giá trị false.

Định nghĩa tại dòng 139 của tệp camera.h .

int(* preview_enabled)(struct camera_device *)

Trả về true nếu bản xem trước được bật.

Định nghĩa tại dòng 154 của tệp camera.h .

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

HAL máy ảnh sử dụng bộ nhớ riêng để truyền cho chúng ta các tham số khi chúng ta gọi get_parameters. Sử dụng hàm này để trả về bộ nhớ cho HAL máy ảnh, nếu put_parameters không phải là NULL. Nếu put_parameters là NULL, thì bạn phải sử dụng free() để giải phóng bộ nhớ.

Định nghĩa tại dòng 265 của tệp camera.h .

int(* recording_enabled)(struct camera_device *)

Trả về true nếu tính năng ghi lại đang bật.

Định nghĩa tại dòng 208 của tệp camera.h .

void(* release)(struct camera_device *)

Giải phóng tài nguyên phần cứng do đối tượng này sở hữu. Xin lưu ý rằng việc này không được thực hiện trong hàm huỷ.

Định nghĩa tại dòng 277 của tệp camera.h .

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

Giải phóng khung ghi mà CAMERA_MSG_VIDEO_FRAME trả về trước đó.

Ứng dụng HAL máy ảnh có trách nhiệm phát hành các khung hình quay video do HAL máy ảnh gửi trước khi HAL máy ảnh nhận được lệnh gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME). Sau khi nhận được lệnh gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME), HAL máy ảnh có trách nhiệm quản lý vòng đời của các khung hình quay video.

Định nghĩa tại dòng 219 của tệp camera.h .

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

Gửi lệnh đến trình điều khiển máy ảnh.

Định nghĩa tại dòng 270 của tệp 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)

Đặt lệnh gọi lại thông báo và dữ liệu

Định nghĩa tại dòng 105 của tệp camera.h .

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

Đặt các thông số của máy ảnh. Hàm này trả về BAD_VALUE nếu có tham số nào không hợp lệ hoặc không được hỗ trợ.

Định nghĩa tại dòng 252 của tệp camera.h .

int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window)

Đặt ANativeWindow mà các khung xem trước được gửi đến

Định nghĩa tại dòng 101 của tệp camera.h .

int(* start_preview)(struct camera_device *)

Bắt đầu chế độ xem trước.

Định nghĩa tại dòng 144 của tệp camera.h .

int(* start_recording)(struct camera_device *)

Bắt đầu chế độ ghi. Khi có hình ảnh ghi lại, hệ thống sẽ gửi thông báo CAMERA_MSG_VIDEO_FRAME cùng với khung tương ứng. Mọi khung ghi phải được ứng dụng HAL máy ảnh phát hành thông qua releaseRecordingFrame() trước khi ứng dụng gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME). Sau khi ứng dụng gọi disableMsgType(CAMERA_MSG_VIDEO_FRAME), HAL máy ảnh sẽ chịu trách nhiệm quản lý vòng đời của các khung hình quay video và ứng dụng không được sửa đổi/truy cập vào bất kỳ khung hình quay video nào.

Định nghĩa tại dòng 198 của tệp camera.h .

void(* stop_preview)(struct camera_device *)

Dừng bản xem trước đã bắt đầu trước đó.

Định nghĩa tại dòng 149 của tệp camera.h .

void(* stop_recording)(struct camera_device *)

Dừng bản ghi đã bắt đầu trước đó.

Định nghĩa tại dòng 203 của tệp camera.h .

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

Yêu cầu HAL máy ảnh lưu trữ siêu dữ liệu hoặc dữ liệu YUV thực trong vùng đệm video được gửi qua CAMERA_MSG_VIDEO_FRAME cho một phiên ghi. Nếu không được gọi, hành vi mặc định của HAL máy ảnh là lưu trữ dữ liệu YUV thực trong vùng đệm video.

Bạn nên gọi phương thức này trước khi startRecording() để có hiệu quả.

Nếu siêu dữ liệu được lưu trữ trong vùng đệm video, thì việc diễn giải nội dung và tìm dữ liệu khung hình thực tế sẽ tuỳ thuộc vào bộ thu của vùng đệm video nhờ siêu dữ liệu trong vùng đệm. Cách thực hiện việc này nằm ngoài phạm vi của phương thức này.

Một số HAL máy ảnh có thể không hỗ trợ lưu trữ siêu dữ liệu trong vùng đệm video, nhưng tất cả HAL máy ảnh đều phải hỗ trợ lưu trữ dữ liệu YUV thực trong vùng đệm video. Nếu HAL máy ảnh không hỗ trợ lưu trữ siêu dữ liệu trong vùng đệm video khi được yêu cầu thực hiện việc này, thì bạn phải trả về INVALID_OPERATION. Việc HAL máy ảnh truyền dữ liệu siêu dữ liệu thay vì dữ liệu khung hình thực tế trực tiếp đến bộ mã hoá video sẽ rất hữu ích, vì lượng dữ liệu khung hình không nén có thể rất lớn nếu kích thước video lớn.

Tham số
bật nếu đúng để hướng dẫn HAL máy ảnh lưu trữ siêu dữ liệu trong vùng đệm video; sai để hướng dẫn HAL máy ảnh lưu trữ dữ liệu YUV thực trong vùng đệm video.
Giá trị trả về
OK khi thành công.

Định nghĩa tại dòng 186 của tệp camera.h .

int(* take_picture)(struct camera_device *)

Chụp ảnh.

Định nghĩa tại dòng 240 của tệp camera.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau: