Справочник по структуре camera_device_ops

Справочник по структуре 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)

Подробное описание

Определение в строке 99 файла camera.h .

Полевая документация

int(* auto_focus)(struct camera_device *)

Запустите автофокусировку, процедура обратного вызова уведомления вызывается с CAMERA_MSG_FOCUS один раз, когда фокусировка завершена. autoFocus() будет вызываться снова, если потребуется еще один автофокус.

Определение в строке 227 файла camera.h .

int(* cancel_auto_focus)(struct camera_device *)

Отменяет функцию автофокусировки. Если автофокусировка все еще выполняется, эта функция отменит ее. Независимо от того, выполняется автофокусировка или нет, эта функция вернет положение фокуса к значению по умолчанию. Если камера не поддерживает автофокус, это бесполезно.

Определение в строке 235 файла camera.h .

int(* cancel_picture)(struct camera_device *)

Отмените изображение, которое было начато с помощью takePicture. Вызов этого метода, когда не делается снимок, невозможен.

Определение в строке 246 файла camera.h .

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

Определение в строке 132 файла camera.h .

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

Дамп состояния оборудования камеры

Определение в строке 282 файла camera.h .

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

Все следующие три функции принимают msg_type, который представляет собой битовую маску сообщений, определенных в include/ui/Camera.h. Включение сообщения или набора сообщений.

Определение в строке 120 файла camera.h .

char*(* get_parameters)(struct camera_device *)

Получите параметры камеры. Буфер, возвращаемый HAL камеры, должен быть возвращен ему обратно с помощью put_parameters, если put_parameters не равно NULL.

Определение в строке 258 файла camera.h .

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

Запросить, включено ли сообщение или набор сообщений. Обратите внимание, что это работает как оператор AND: если какое-либо из запрошенных сообщений отключено, это вернет false.

Определение в строке 139 файла camera.h .

int(*view_enabled)(struct camera_device *)

Возвращает true, если предварительный просмотр включен.

Определение в строке 154 файла camera.h .

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

HAL камеры использует собственную память для передачи нам параметров, когда мы вызываем get_parameters. Используйте эту функцию, чтобы вернуть память обратно в HAL камеры, если put_parameters не равно NULL. Если put_parameters имеет значение NULL, вам придется использовать free() для освобождения памяти.

Определение в строке 265 файла camera.h .

int(* Recording_enabled)(struct camera_device *)

Возвращает true, если запись включена.

Определение в строке 208 файла camera.h .

void(* Release)(struct camera_device *)

Освободите аппаратные ресурсы, принадлежащие этому объекту. Обратите внимание, что это не делается в деструкторе.

Определение в строке 277 файла camera.h .

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 камеры отвечает за управление жизненным циклом кадров видеозаписи.

Определение в строке 219 файла camera.h .

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

Отправьте команду драйверу камеры.

Определение в строке 270 файла 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)

Установите уведомления и обратные вызовы данных

Определение в строке 105 файла camera.h .

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

Установите параметры камеры. Это возвращает BAD_VALUE, если какой-либо параметр недействителен или не поддерживается.

Определение в строке 252 файла camera.h .

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

Установите ANativeWindow, в которое отправляются кадры предварительного просмотра.

Определение в строке 101 файла camera.h .

int(* start_preview)(struct camera_device *)

Запустите режим предварительного просмотра.

Определение в строке 144 файла camera.h .

int(* start_recording)(struct camera_device *)

Запустите режим записи. Когда изображение записи доступно, сообщение CAMERA_MSG_VIDEO_FRAME отправляется с соответствующим кадром. Каждый кадр записи должен быть освобожден клиентом HAL камеры через ReleaseRecordingFrame() до того, как клиент вызовет метод DisableMsgType(CAMERA_MSG_VIDEO_FRAME). После того, как клиент вызывает DisableMsgType(CAMERA_MSG_VIDEO_FRAME), HAL камеры отвечает за управление жизненным циклом кадров видеозаписи, и клиент не должен изменять или получать доступ к каким-либо кадрам видеозаписи.

Определение в строке 198 файла camera.h .

void(* stop_preview)(struct camera_device *)

Остановите ранее запущенный предварительный просмотр.

Определение в строке 149 файла camera.h .

void(* stop_recording)(struct camera_device *)

Остановить ранее начатую запись.

Определение в строке 203 файла camera.h .

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 в видеобуферах.
Возврат
ОК, успех.

Определение в строке 186 файла camera.h .

int(* take_picture)(struct camera_device *)

Сделать фото.

Определение в строке 240 файла camera.h .


Документация для этой структуры была создана из следующего файла:
  • Аппаратное обеспечение/libhardware/include/hardware/ camera.h