Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

#include < camera_common.h >

Поля данных

hw_module_t общий
интервал (* get_number_of_cameras )(недействительно)
интервал (* get_camera_info )(int camera_id, struct camera_info *info)
интервал (* set_callbacks )(const camera_module_callbacks_t *коллбэки)
пустота(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
интервал (* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
интервал (* set_torch_mode )(const char *camera_id, логическое значение включено)
интервал (* инициировать )()
пустота * зарезервировано [5]

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

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

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

hw_module_t общий

Общие методы модуля камеры. Это должен быть первый член camera_module , так как пользователи этой структуры будут приводить hw_module_t к указателю camera_module в контекстах, где известно, что hw_module_t ссылается на camera_module .

Возвращаемые значения для common.methods->open для camera_module :

0: При успешном открытии устройства камеры.

-ENODEV: Камера не может быть открыта из-за внутренней ошибки.

-EINVAL: Недопустимые входные аргументы, т. е. недопустимый идентификатор и/или недопустимый модуль.

-EBUSY: устройство камеры уже было открыто для этого идентификатора камеры (используя этот метод или open_legacy), независимо от версии HAL устройства, в которой оно было открыто.

-EUSERS: максимальное количество камер, которые могут быть открыты одновременно, уже были открыты с помощью этого метода или метода open_legacy.

Все другие возвращаемые значения из common.methods->open будут рассматриваться как -ENODEV.

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

int(* get_camera_info)(int camera_id, struct camera_info *info)

получить_камера_информация:

Возвращает статическую информацию о камере для данного устройства камеры. Эта информация может не измениться для устройства камеры.

Возвращаемые значения:

0: При успешной операции

-ENODEV: Информация не может быть предоставлена ​​из-за внутренней ошибки.

-EINVAL: Недопустимые входные аргументы, т. е. недопустимый идентификатор и/или недопустимый модуль.

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 или выше:

Когда камера отключена, ее идентификатор камеры становится недействительным. При вызове этого метода с этим недопустимым идентификатором камеры будут получены статические метаданные камеры -EINVAL и NULL ( camera_info.static_camera_characteristics ).

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

int(* get_number_of_cameras)(недействительно)

получить_число_камер:

Возвращает количество устройств камеры, доступных через модуль камеры. Устройства камеры пронумерованы от 0 до N-1, где N — значение, возвращаемое этим вызовом. Имя устройства камеры для open() — это просто число, преобразованное в строку. То есть «0» для идентификатора камеры 0, «1» для идентификатора камеры 1.

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 или ниже:

Значение здесь должно быть статическим и не может измениться после первого вызова этого метода.

CAMERA_MODULE_API_VERSION_2_4 или выше:

Значение здесь должно быть статическим и учитывать только встроенные камеры, которые имеют значения CAMERA_FACING_BACK или CAMERA_FACING_FRONT ( camera_info.facing ). HAL не должен включать внешние камеры ( camera_info.facing == CAMERA_FACING_EXTERNAL) в возвращаемое значение этого вызова. Фреймворки будут использовать обратный вызов camera_device_status_change для управления количеством внешних камер.

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

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Получите методы для запроса информации тега метаданных расширения поставщика. HAL должен заполнить все методы операций тега поставщика или оставить операции без изменений, если теги поставщика не определены.

Используемая здесь структура vendor_tag_ops определена в: system/media/camera/include/system/vendor_tags.h

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: не предоставляется модулем HAL. Framework не может вызывать эту функцию.

CAMERA_MODULE_API_VERSION_2_2: допустимо для вызова платформой.

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

интервал (* инициализация) ()

в этом:

Этот метод вызывается службой камеры перед вызовом любых других методов сразу после успешной загрузки библиотеки HAL камеры. Модуль HAL может оставить его равным NULL, если инициализация не требуется.

Он может использоваться реализациями HAL для выполнения инициализации и других одноразовых операций.

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: не предоставляется модулем HAL. Framework не будет вызывать эту функцию.

CAMERA_MODULE_API_VERSION_2_4: если не NULL, всегда будет вызываться платформой один раз после загрузки модуля HAL, до вызова любого другого метода модуля HAL.

Возвращаемые значения:

0: При успешной операции.

-ENODEV: Инициализация не может быть завершена из-за внутренней ошибки. Предполагается, что HAL находится в нефункциональном состоянии.

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

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

open_legacy:

Откройте конкретное устаревшее устройство HAL камеры, если этот модуль HAL камеры поддерживает несколько версий HAL API устройства. Например, если модуль камеры поддерживает как CAMERA_DEVICE_API_VERSION_1_0, так и CAMERA_DEVICE_API_VERSION_3_2 API устройства для одного и того же идентификатора камеры, платформа может вызвать эту функцию, чтобы открыть устройство камеры как устройство CAMERA_DEVICE_API_VERSION_1_0.

Это необязательный метод. Модуль камеры HAL не должен поддерживать более одной версии HAL устройства на устройство, и такие модули могут возвращать -ENOSYS для всех вызовов этого метода. Для всех более старых версий API устройств HAL, которые не поддерживаются, он может возвращать -EOPNOTSUPP. Когда происходят вышеуказанные случаи, вместо этого фреймворк будет использовать обычный метод open() (common.methods->open).

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: не предоставляется модулем HAL. Framework не будет вызывать эту функцию.

CAMERA_MODULE_API_VERSION_2_3: допустимо для вызова фреймворком.

Возвращаемые значения:

0: При успешном открытии устройства камеры.

-ENOSYS Этот метод не поддерживается.

-EOPNOTSUPP: запрошенная версия HAL не поддерживается этим методом.

-EINVAL: Недопустимые входные аргументы, т. е. недопустимый идентификатор и/или недопустимый модуль.

-EBUSY: устройство камеры уже было открыто для этого идентификатора камеры (используя этот метод или метод common.methods->open), независимо от версии HAL устройства, в которой оно было открыто.

-EUSERS: максимальное количество камер, которые могут быть открыты одновременно, уже были открыты либо этим методом, либо методом common.methods->open.

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

пустота* зарезервировано[5]

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

int(* set_callbacks)(const camera_module_callbacks_t *обратные вызовы)

set_callbacks:

Предоставьте указатели функций обратного вызова для модуля HAL, чтобы информировать платформу о событиях асинхронного модуля камеры. Платформа вызовет эту функцию один раз после начальной загрузки модуля HAL камеры, после первого вызова метода get_number_of_cameras() и перед любыми другими вызовами модуля.

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Не предоставляется модулем HAL. Framework не может вызывать эту функцию.

КАМЕРА_МОДУЛЬ_API_VERSION_2_1:

Действителен для вызова фреймворком.

Возвращаемые значения:

0: При успешной операции

-ENODEV: Операция не может быть завершена из-за внутренней ошибки.

-EINVAL: входные аргументы недействительны, т. е. обратные вызовы равны нулю.

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

int(* set_torch_mode)(const char *camera_id, bool включен)

set_torch_mode:

Включите или выключите режим фонарика вспышки, связанной с данным идентификатором камеры. Если операция выполнена успешно, HAL должен уведомить состояние факела фреймворка, вызвав camera_module_callbacks.torch_mode_status_change() с новым состоянием.

Устройство камеры имеет более высокий приоритет доступа к вспышке. Когда возникают какие-либо конфликты ресурсов, такие как вызов open() для открытия устройства камеры, модуль HAL должен уведомить платформу через camera_module_callbacks.torch_mode_status_change() о том, что режим факела был выключен, а состояние режима факела стало TORCH_MODE_STATUS_NOT_AVAILABLE. Когда ресурсы для включения режима факела снова становятся доступными, модуль HAL должен уведомить фреймворк через camera_module_callbacks.torch_mode_status_change() о том, что состояние режима факела стало TORCH_MODE_STATUS_AVAILABLE_OFF для вызова set_torch_mode() .

Когда фреймворк вызывает set_torch_mode() для включения режима факела флэш-памяти, если HAL не может одновременно поддерживать несколько режимов факела, HAL должен отключить режим факела, который был включен предыдущим вызовом set_torch_mode() , и уведомить фреймворк. что состояние режима фонарика этой вспышки стало TORCH_MODE_STATUS_AVAILABLE_OFF.

Информация о версии (на основе camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: не предоставляется модулем HAL. Framework не будет вызывать эту функцию.

CAMERA_MODULE_API_VERSION_2_4: допустимо для вызова фреймворком.

Возвращаемые значения:

0: При успешной операции.

-ENOSYS: Камера не поддерживает эту операцию. Он возвращается тогда и только тогда, когда android.flash.info.available имеет значение false.

-EBUSY: камера уже используется.

-EUSERS: ресурсы, необходимые для включения режима фонарика, недоступны, как правило, потому, что другие устройства камеры удерживают ресурсы, чтобы сделать использование вспышки невозможным.

-EINVAL: camera_id недействителен.

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


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