camera_device_ops Справочник по структуре
#include < camera.h >
Поля данных | |
интервал (* | set_preview_window )(struct camera_device *, struct preview_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) |
пустота(* | disable_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 *) |
интервал (* | preview_enabled )(struct camera_device *) |
интервал (* | store_meta_data_in_buffers ) (struct camera_device *, int enable) |
интервал (* | start_recording )(struct camera_device *) |
пустота(* | stop_recording )(struct camera_device *) |
интервал (* | record_enabled )(struct 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) |
пустота(* | выпуск )(структура 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(* дамп)(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 *) |
Камера HAL использует свою собственную память для передачи нам параметров, когда мы вызываем get_parameters. Используйте эту функцию, чтобы вернуть память обратно в камеру HAL, если параметр put_parameters не равен NULL. Если put_parameters имеет значение NULL, вам нужно использовать free() для освобождения памяти.
int(* record_enabled)(struct camera_device *) |
void (* выпуск) (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 *, struct preview_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/оборудование/ camera.h