camera_device_ops Tham chiếu cấu trúc

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ể

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

Tài liệu hiện trường

int(* auto_focus)(struct camera_device *)

Bắt đầu lấy nét tự động, quy trình gọi lại thông báo sẽ đượ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 file camera.h .

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.

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

int(* cancel_picture)(struct camera_device *)

Hủy ảnh đã được bắt đầu bằng takePicture. Gọi phương thức này khi không có ảnh nào được chụp là điều không nên.

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

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).

Định nghĩa tại dòng 132 của file 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 file camera.h .

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

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

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

char*(* get_parameters)(struct camera_device *)

Truy xuất thông số camera. Bộ đệm được máy ảnh HAL trả về phải được trả về với put_parameters, nếu put_parameters không phải là NULL.

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

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

Truy vấn xem một tin nhắn hoặc một tập hợp các tin nhắn có được bật hay không. Lưu ý rằng điều này hoạt động dưới dạng AND, nếu bất kỳ thông báo nào được truy vấn bị tắt, điều này sẽ trả về sai.

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

int(* Preview_enabled)(struct camera_device *)

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

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

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ớ.

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

int(* record_enabled)(struct camera_device *)

Trả về true nếu tính năng ghi được bật.

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

void(* phát hành)(struct camera_device *)

Giải phóng tài nguyên phần cứng thuộc sở hữu của đối tượng này. Lưu ý rằng điều này không được thực hiện trong hàm hủy.

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

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.

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

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

Gửi lệnh tới trình điều khiển camera.

Định nghĩa tại dòng 270 của file camera.h .

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)

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

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

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

Thiết lập các thông số của máy ảnh. Điều này trả về BAD_VALUE nếu bất kỳ 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 file camera.h .

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

Đặt ANativeWindow để gửi khung xem trước

Định nghĩa tại dòng 101 của file 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 file camera.h .

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.

Định nghĩa tại dòng 198 của file 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 file camera.h .

void(* stop_recording)(struct camera_device *)

Dừng quá trình ghi đã bắt đầu trước đó.

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

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.

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

int(* take_picture)(struct camera_device *)

Chụp ảnh.

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


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