Справочник по структуре camera_device_ops
#include < camera.h >
Поля данных | |
интервал(* | set_preview_window )(struct camera_device *, structview_stream_ops *window) |
пустота(* | 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) |
пустота(* | Enable_msg_type )(struct camera_device *, int32_t msg_type) |
пустота(* | отключить_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 *) |
интервал(* | предварительный просмотр_enabled )(struct camera_device *) |
интервал(* | store_meta_data_in_buffers )(struct camera_device *, int Enable) |
интервал(* | start_recording )(struct camera_device *) |
пустота(* | stop_recording )(struct camera_device *) |
интервал(* | запись_включена )(структура camera_device *) |
пустота(* | Release_recording_frame )(struct camera_device *, const void *opaque) |
интервал(* | auto_focus )(struct camera_device *) |
интервал(* | cancel_auto_focus )(struct camera_device *) |
интервал(* | take_picture )(struct camera_device *) |
интервал(* | cancel_picture )(struct camera_device *) |
интервал(* | 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) |
Подробное описание
Полевая документация
int(* auto_focus)(struct camera_device *) |
int(* cancel_auto_focus)(struct camera_device *) |
Отменяет функцию автофокусировки. Если автофокусировка все еще выполняется, эта функция отменит ее. Независимо от того, выполняется автофокусировка или нет, эта функция вернет положение фокуса к значению по умолчанию. Если камера не поддерживает автофокус, это бесполезно.
int(* cancel_picture)(struct camera_device *) |
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).
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(*view_enabled)(struct camera_device *) |
void(* put_parameters)(struct camera_device *, char *) |
HAL камеры использует собственную память для передачи нам параметров, когда мы вызываем get_parameters. Используйте эту функцию, чтобы вернуть память обратно в HAL камеры, если put_parameters не равно NULL. Если put_parameters имеет значение NULL, вам придется использовать free() для освобождения памяти.
int(* Recording_enabled)(struct camera_device *) |
void(* Release)(struct camera_device *) |
void(* Release_recording_frame)(struct camera_device *, const void *opaque) |
Освободите кадр записи, ранее возвращенный CAMERA_MSG_VIDEO_FRAME.
Клиент HAL камеры несет ответственность за освобождение кадров видеозаписи, отправленных HAL камеры, до того, как HAL камеры получит вызов DisableMsgType(CAMERA_MSG_VIDEO_FRAME). После получения вызова DisableMsgType(CAMERA_MSG_VIDEO_FRAME) HAL камеры отвечает за управление жизненным циклом кадров видеозаписи.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
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) |
int(* set_parameters)(struct camera_device *, const char *parms) |
int(* set_preview_window)(struct camera_device *, structview_stream_ops *window) |
int(* start_preview)(struct camera_device *) |
int(* start_recording)(struct camera_device *) |
Запустите режим записи. Когда изображение записи доступно, сообщение CAMERA_MSG_VIDEO_FRAME отправляется с соответствующим кадром. Каждый кадр записи должен быть освобожден клиентом HAL камеры через ReleaseRecordingFrame() до того, как клиент вызовет метод DisableMsgType(CAMERA_MSG_VIDEO_FRAME). После того, как клиент вызывает DisableMsgType(CAMERA_MSG_VIDEO_FRAME), HAL камеры отвечает за управление жизненным циклом кадров видеозаписи, и клиент не должен изменять или получать доступ к каким-либо кадрам видеозаписи.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
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 камеры очень полезно передавать метаданные, а не фактические данные кадра, непосредственно в видеокодер, поскольку объем несжатых данных кадра может быть очень большим, если размер видео велик.
- Параметры
давать возможность если true, чтобы указать HAL камеры хранить метаданные в видеобуферах; false, чтобы указать HAL камеры хранить реальные данные YUV в видеобуферах.
- Возврат
- ОК, успех.
int(* take_picture)(struct camera_device *) |
Документация для этой структуры была создана из следующего файла:
- Аппаратное обеспечение/libhardware/include/hardware/ camera.h