camera_device_ops Tham chiếu cấu trúc
#include < camera.h >
Trường dữ liệu | |
int(* | set_preview_window )(cấu trúc camera_device *, cấu trúc Preview_stream_ops *window) |
khoảng trống(* | set_callbacks )(struct camera_device *, camera_notify_callback notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user) |
khoảng trống(* | Enable_msg_type )(struct camera_device *, int32_t msg_type) |
khoảng trống(* | vô hiệu hóa_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 *) |
khoảng trống(* | stop_preview )(struct camera_device *) |
int(* | Preview_enabled )(struct camera_device *) |
int(* | store_meta_data_in_buffers )(cấu trúc camera_device *, kích hoạt int) |
int(* | start_recording )(struct camera_device *) |
khoảng trống(* | stop_recording )(struct camera_device *) |
int(* | ghi_enabled )(struct camera_device *) |
khoảng trống(* | 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) |
ký tự *(* | get_parameters )(struct camera_device *) |
khoảng trống(* | put_parameters )(struct camera_device *, char *) |
int(* | send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
khoảng trống(* | phát hành )(struct camera_device *) |
int(* | dump )(struct camera_device *, int fd) |
miêu tả cụ thể
Tài liệu hiện trường
int(* auto_focus)(struct camera_device *) |
int(* cancel_auto_focus)(struct camera_device *) |
Hủy bỏ chức năng tự động lấy nét. Nếu quá trình lấy nét tự động vẫn đang diễn ra, chức năng này sẽ hủy nó. Cho dù quá trình lấy nét tự động có đang diễn ra hay không, chức năng này sẽ đưa vị trí lấy nét về mặc định. Nếu máy ảnh không hỗ trợ lấy nét tự động thì đây là điều không nên.
int(* cancel_picture)(struct camera_device *) |
void(* vô hiệu hóa_msg_type)(struct camera_device *, int32_t msg_type) |
Tắt một tin nhắn hoặc một tập hợp tin nhắn.
Sau khi nhận được lệnh gọi để vô hiệu hóaMsgType(CAMERA_MSG_VIDEO_FRAME), máy ảnh HAL không nên dựa vào ứng dụng khách của mình để gọi bản phát hànhRecordingFrame() để giải phóng các khung quay video được gửi bởi máy ảnh HAL trước và sau lệnh gọi vô hiệu hóaMsgType(CAMERA_MSG_VIDEO_FRAME). Máy khách HAL của máy ảnh không được sửa đổi/truy cập bất kỳ khung quay video nào sau khi gọi lệnh vô hiệu hóaMsgType(CAMERA_MSG_VIDEO_FRAME).
int(* dump)(struct camera_device *, int fd) |
void(* Enable_msg_type)(struct camera_device *, int32_t msg_type) |
char*(* get_parameters)(struct camera_device *) |
int(* msg_type_enabled)(struct camera_device *, int32_t msg_type) |
int(* Preview_enabled)(struct camera_device *) |
void(* put_parameters)(struct camera_device *, char *) |
Camera HAL sử dụng bộ nhớ riêng của nó để truyền cho chúng ta các tham số khi chúng ta gọi get_parameters. Sử dụng chức năng này để trả lại bộ nhớ cho máy ảnh HAL, 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ớ.
int(* record_enabled)(struct camera_device *) |
void(* phát hành)(struct camera_device *) |
void(* Release_recording_frame)(struct camera_device *, const void *opaque) |
Giải phóng khung bản ghi được CAMERA_MSG_VIDEO_FRAME trả về trước đó.
Khách hàng HAL của camera có trách nhiệm giải phóng các khung hình ghi video do camera HAL gửi đi trước khi camera HAL nhận được lệnh gọi tắtMsgType(CAMERA_MSG_VIDEO_FRAME). Sau khi nhận được lệnh gọi tắtMsgType(CAMERA_MSG_VIDEO_FRAME), HAL của máy ảnh có trách nhiệm quản lý vòng đời của các khung hình quay video.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
void(* set_callbacks)(struct camera_device *, camera_notify_callback notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user) |
int(* set_parameters)(struct camera_device *, const char *parms) |
int(* set_preview_window)(struct camera_device *, struct Preview_stream_ops *window) |
int(* start_preview)(struct camera_device *) |
int(* start_recording)(struct camera_device *) |
Bắt đầu chế độ ghi. Khi có hình ảnh ghi lại, thông báo CAMERA_MSG_VIDEO_FRAME sẽ được gửi cùng với khung tương ứng. Mọi khung bản ghi phải được giải phóng bởi ứng dụng khách HAL của camera thông qua ReleaseRecordingFrame() trước khi ứng dụng khách gọi lệnh vô hiệu hóaMsgType(CAMERA_MSG_VIDEO_FRAME). Sau khi máy khách gọi lệnh vô hiệu hóaMsgType(CAMERA_MSG_VIDEO_FRAME), HAL của máy ảnh có trách nhiệm quản lý vòng đời của các khung quay video và máy khách không được sửa đổi/truy cập bất kỳ khung quay video nào.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
int(* store_meta_data_in_buffers)(struct camera_device *, int Enable) |
Yêu cầu HAL của máy ảnh lưu trữ dữ liệu meta hoặc dữ liệu YUV thực trong bộ đệm video được gửi qua CAMERA_MSG_VIDEO_FRAME cho phiên ghi. Nếu nó không được gọi, hành vi HAL mặc định của camera là lưu trữ dữ liệu YUV thực trong bộ đệm video.
Phương thức này nên được gọi trước startRecording() để có hiệu quả.
Nếu dữ liệu meta được lưu trữ trong bộ đệm video, thì bộ thu của bộ đệm video sẽ giải thích nội dung và tìm dữ liệu khung thực tế với sự trợ giúp của dữ liệu meta trong bộ đệm. Cách thực hiện điều này nằm ngoài phạm vi của phương pháp này.
Một số HAL của máy ảnh có thể không hỗ trợ lưu trữ dữ liệu meta trong bộ đệm video, nhưng tất cả HAL của máy ảnh phải hỗ trợ lưu trữ dữ liệu YUV thực trong bộ đệm video. Nếu HAL máy ảnh không hỗ trợ lưu trữ siêu dữ liệu trong bộ đệm video khi được yêu cầu thực hiện thì phải trả về INVALID_OPERATION. Việc HAL của máy ảnh truyền trực tiếp dữ liệu meta thay vì dữ liệu khung hình thực tế trực tiếp đến bộ mã hóa video là 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.
- Thông số
cho phép nếu đúng thì hướng dẫn HAL của máy ảnh lưu trữ dữ liệu meta trong bộ đệm video; sai để hướng dẫn máy ảnh HAL lưu trữ dữ liệu YUV thực trong bộ đệm video.
- Trả lại
- OK thành công.
int(* take_picture)(struct camera_device *) |
Tài liệu cho cấu trúc này được tạo từ tệp sau:
- phần cứng/libhardware/bao gồm/phần cứng/ camera.h