referencia de estructura camera_module

referencia de estructura camera_module

#include < camera_common.h >

Campos de información

hw_module_t común
En t(* get_number_of_cameras (nulo)
En t(* get_camera_info )(int camera_id, estructura camera_info *info)
En t(* set_callbacks )(const camera_module_callbacks_t *devoluciones de llamada)
vacío(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
En t(* open_legacy )(const struct hw_module_t *módulo, const char *id, uint32_t halVersion, struct hw_device_t **dispositivo)
En t(* set_torch_mode )(const char *camera_id, bool habilitado)
En t(* en eso )()
vacío * reservado [5]

Descripción detallada

Definición en la línea 646 del archivo camera_common.h .

Documentación de campo

Métodos comunes del módulo de cámara. Este debe ser el primer miembro de camera_module ya que los usuarios de esta estructura enviarán un puntero hw_module_t a camera_module en contextos donde se sabe que hw_module_t hace referencia a un camera_module .

Los valores de retorno para common.methods->open para camera_module son:

0: Tras una apertura exitosa del dispositivo de la cámara.

-ENODEV: El dispositivo de la cámara no se puede abrir debido a un error interno.

-EINVAL: Los argumentos de entrada no son válidos, es decir, la identificación no es válida y/o el módulo no es válido.

-EBUSY: el dispositivo de la cámara ya se abrió para esta identificación de cámara (mediante este método o open_legacy), independientemente de la versión HAL del dispositivo con la que se abrió.

-EUSERS: La cantidad máxima de dispositivos de cámara que se pueden abrir simultáneamente ya se abrieron, ya sea mediante este método o el método open_legacy.

Todos los demás valores de retorno de common.methods->open se tratarán como -ENODEV.

Definición en la línea 674 del archivo camera_common.h .

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

get_camera_info:

Devuelve la información estática de la cámara para un dispositivo de cámara determinado. Es posible que esta información no cambie para un dispositivo con cámara.

Valores de retorno:

0: En una operación exitosa

-ENODEV: No se puede proporcionar la información por un error interno.

-EINVAL: Los argumentos de entrada no son válidos, es decir, la identificación no es válida y/o el módulo no es válido.

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 o superior:

Cuando se desconecta una cámara, su identificación de cámara deja de ser válida. Llamar a este método con esta identificación de cámara no válida obtendrá metadatos estáticos de cámara -EINVAL y NULL ( camera_info.static_camera_characteristics ).

Definición en la línea 727 del archivo camera_common.h .

int(* obtener_número_de_cámaras)(void)

obtener_número_de_cámaras:

Devuelve el número de dispositivos de cámara accesibles a través del módulo de cámara. Los dispositivos de cámara están numerados del 0 al N-1, donde N es el valor devuelto por esta llamada. El nombre del dispositivo de la cámara para open() es simplemente el número convertido en una cadena. Es decir, "0" para el ID de cámara 0, "1" para el ID de cámara 1.

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 o inferior:

El valor aquí debe ser estático y no puede cambiar después de la primera llamada a este método.

CAMERA_MODULE_API_VERSION_2_4 o superior:

El valor aquí debe ser estático y debe contar solo las cámaras integradas, que tienen valores de orientación de cámara CAMERA_FACING_BACK o CAMERA_FACING_FRONT ( camera_info.facing ). HAL no debe incluir las cámaras externas ( camera_info.facing == CAMERA_FACING_EXTERNAL) en el valor de retorno de esta llamada. Los marcos utilizarán la devolución de llamada camera_device_status_change para administrar la cantidad de cámaras externas.

Definición en la línea 701 del archivo camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Obtenga métodos para consultar información de etiquetas de metadatos de extensión del proveedor. La HAL debe completar todos los métodos de operación de etiquetas de proveedor o dejar las operaciones sin cambios si no se definen etiquetas de proveedor.

La estructura seller_tag_ops utilizada aquí se define en: system/media/camera/include/system/vendor_tags.h

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: No proporcionado por el módulo HAL. Es posible que Framework no llame a esta función.

CAMERA_MODULE_API_VERSION_2_2: Válido para ser llamado por el marco.

Definición en la línea 778 del archivo camera_common.h .

int(* inicio)()

en eso:

El servicio de cámara llama a este método antes de invocar cualquier otro método, justo después de que la biblioteca HAL de la cámara se haya cargado correctamente. El módulo HAL puede dejarlo como NULL, si no es necesaria ninguna inicialización.

Puede ser utilizado por implementaciones HAL para realizar inicializaciones y otras operaciones únicas.

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: No proporcionado por el módulo HAL. Framework no llamará a esta función.

CAMERA_MODULE_API_VERSION_2_4: Si no es NULL, el marco siempre lo llamará una vez después de cargar el módulo HAL, antes de llamar a cualquier otro método del módulo HAL.

Valores de retorno:

0: En una operación exitosa.

-ENODEV: La inicialización no se puede completar debido a un error interno. Se debe suponer que el HAL se encuentra en un estado no funcional.

Definición en la línea 909 del archivo camera_common.h .

int(* open_legacy)(const struct hw_module_t *módulo, const char *id, uint32_t halVersion, struct hw_device_t **dispositivo)

legado_abierto:

Abra un dispositivo HAL de cámara heredado específico si este módulo HAL de cámara admite varias versiones de API HAL de dispositivo. Por ejemplo, si el módulo de la cámara admite la API del dispositivo CAMERA_DEVICE_API_VERSION_1_0 y CAMERA_DEVICE_API_VERSION_3_2 para la misma identificación de cámara, el marco puede llamar a esta función para abrir el dispositivo de la cámara como dispositivo CAMERA_DEVICE_API_VERSION_1_0.

Este es un método opcional. Un módulo Camera HAL no necesita admitir más de una versión HAL de dispositivo por dispositivo, y dichos módulos pueden devolver -ENOSYS para todas las llamadas a este método. Para todas las versiones API de dispositivos HAL anteriores que no son compatibles, es posible que devuelva -EOPNOTSUPP. Cuando ocurren los casos anteriores, el marco utilizará el método normal open() (common.methods->open).

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: No proporcionado por el módulo HAL. Framework no llamará a esta función.

CAMERA_MODULE_API_VERSION_2_3: Válido para ser llamado por el marco.

Valores de retorno:

0: Tras una apertura exitosa del dispositivo de la cámara.

-ENOSYS Este método no es compatible.

-EOPNOTSUPP: la versión HAL solicitada no es compatible con este método.

-EINVAL: Los argumentos de entrada no son válidos, es decir, la identificación no es válida y/o el módulo no es válido.

-EBUSY: el dispositivo de la cámara ya se abrió para esta identificación de cámara (mediante este método o el método common.methods->open), independientemente de la versión HAL del dispositivo con la que se abrió.

-EUSERS: La cantidad máxima de dispositivos de cámara que se pueden abrir simultáneamente ya se abrieron, ya sea mediante este método o mediante métodos comunes->método abierto.

Definición en la línea 824 del archivo camera_common.h .

nulo* reservado[5]

Definición en la línea 912 del archivo camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *devoluciones de llamada)

set_callbacks:

Proporcione punteros de función de devolución de llamada al módulo HAL para informar al marco de eventos del módulo de cámara asincrónica. El marco llamará a esta función una vez después de la carga inicial del módulo HAL de la cámara, después de llamar al método get_number_of_cameras() por primera vez y antes de cualquier otra llamada al módulo.

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

No proporcionado por el módulo HAL. Es posible que Framework no llame a esta función.

CAMERA_MODULE_API_VERSION_2_1:

Válido para ser llamado por el framework.

Valores de retorno:

0: En una operación exitosa

-ENODEV: La operación no se puede completar debido a un error interno.

-EINVAL: Los argumentos de entrada no son válidos, es decir, las devoluciones de llamada son nulas.

Definición en la línea 758 del archivo camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool habilitado)

set_torch_mode:

Enciende o apaga el modo de antorcha de la unidad de flash asociada con una ID de cámara determinada. Si la operación tiene éxito, HAL debe notificar el estado de la antorcha del marco invocando camera_module_callbacks.torch_mode_status_change() con el nuevo estado.

El dispositivo de la cámara tiene mayor prioridad para acceder a la unidad de flash. Cuando hay conflictos de recursos, como cuando se llama a open() para abrir un dispositivo de cámara, el módulo HAL debe notificar al marco a través de camera_module_callbacks.torch_mode_status_change() que el modo de antorcha se ha desactivado y el estado del modo de antorcha se ha convertido en TORCH_MODE_STATUS_NOT_AVAILABLE. Cuando los recursos para activar el modo antorcha vuelvan a estar disponibles, el módulo HAL debe notificar al marco a través de camera_module_callbacks.torch_mode_status_change() que el estado del modo antorcha se ha convertido en TORCH_MODE_STATUS_AVAILABLE_OFF para que se llame a set_torch_mode() .

Cuando el marco llama a set_torch_mode() para activar el modo de antorcha de una unidad de flash, si HAL no puede mantener varios modos de antorcha encendidos simultáneamente, HAL debe desactivar el modo de antorcha que se activó mediante una llamada anterior a set_torch_mode() y notificar al marco que el estado del modo antorcha de esa unidad de flash se ha convertido en TORCH_MODE_STATUS_AVAILABLE_OFF.

Información de versión (basada en camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: No proporcionado por el módulo HAL. Framework no llamará a esta función.

CAMERA_MODULE_API_VERSION_2_4: Válido para ser llamado por el marco.

Valores de retorno:

0: En una operación exitosa.

-ENOSYS: El dispositivo de la cámara no admite esta operación. Se devuelve si y sólo si android.flash.info.available es falso.

-EBUSY: El dispositivo de la cámara ya está en uso.

-USUARIOS: Los recursos necesarios para activar el modo linterna no están disponibles, normalmente porque otros dispositivos de cámara retienen los recursos para que no sea posible utilizar la unidad de flash.

-EINVAL: camera_id no es válido.

Definición en la línea 878 del archivo camera_common.h .


La documentación para esta estructura se generó a partir del siguiente archivo: