Referencia de la estructura camera_module

Referencia de la estructura camera_module

#include < camera_common.h >

Campos de información

hw_module_t común
En t(* get_number_of_cameras )(void)
En t(* get_camera_info )(int camera_id, struct 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(* inicializar )()
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 emitirán un puntero hw_module_t a camera_module en contextos donde se sabe que hw_module_t hace referencia a camera_module .

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

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

-ENODEV: No se puede abrir el dispositivo de la cámara 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 cámara ya se abrió para esta identificación de cámara (usando 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 al mismo tiempo ya se abrió, ya sea con este método o con 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, struct 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 devueltos:

0: en una operación exitosa

-ENODEV: No se puede proporcionar la información 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.

Información de la 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(* get_number_of_cameras)(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 cámara para open() es simplemente el número convertido en una cadena. Es decir, "0" para la ID de cámara 0, "1" para la ID de cámara 1.

Información de la 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 ). La 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 .

vacío(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

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

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

Información de la 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 framework.

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

int(* inicial)()

en eso:

El servicio de la cámara llama a este método antes de que se invoque 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 se necesita inicialización.

Puede ser utilizado por las implementaciones de HAL para realizar la inicialización y otras operaciones únicas.

Información de la 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 que se cargue el módulo HAL, antes de llamar a cualquier otro método de módulo HAL.

Valores devueltos:

0: En una operación exitosa.

-ENODEV: No se puede completar la inicialización debido a un error interno. Se debe suponer que la 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 heredada específico si este módulo HAL de cámara admite varias versiones de API HAL de dispositivos. Por ejemplo, si el módulo de la cámara es compatible con la API del dispositivo CAMERA_DEVICE_API_VERSION_1_0 y CAMERA_DEVICE_API_VERSION_3_2 para la misma ID 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 HAL de cámara 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 anteriores de la API del dispositivo HAL que no son compatibles, puede devolver -EOPNOTSUPP. Cuando ocurren los casos anteriores, el marco utilizará el método normal open() (common.methods->open) en su lugar.

Información de la 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 framework.

Valores devueltos:

0: en 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 ID de cámara (usando este método o common.methods->método abierto), independientemente de la versión HAL del dispositivo con la que se abrió.

-EUSERS: el número máximo de dispositivos de cámara que se pueden abrir simultáneamente ya se abrió, ya sea por este método o common.methods->método abierto.

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

vacío* reservado[5]

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

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Proporcione punteros de función de devolución de llamada al módulo HAL para informar al marco de los eventos del módulo de cámara asíncrona. 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 la versión (basada en camera_module_t.common.module_api_version):

CÁMARA_MODULE_API_VERSION_1_0, CÁMARA_MODULE_API_VERSION_2_0:

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

CÁMARA_MODULE_API_VERSION_2_1:

Válido para ser llamado por el framework.

Valores devueltos:

0: en una operación exitosa

-ENODEV: No se puede completar la operación por 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)

establecer_modo_antorcha:

Encienda o apague el modo de linterna de la unidad de flash asociada con una ID de cámara determinada. Si la operación es exitosa, 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 una 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 antorcha se ha apagado y el estado del modo antorcha se ha convertido en TORCH_MODE_STATUS_NOT_AVAILABLE. Cuando los recursos para activar el modo antorcha vuelven 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 encender el modo de linterna de una unidad de flash, si HAL no puede mantener varios modos de linterna encendidos simultáneamente, HAL debe apagar el modo de linterna que se activó mediante una llamada anterior a set_torch_mode() y notificar al marco que el estado del modo linterna de esa unidad de flash se ha convertido en TORCH_MODE_STATUS_AVAILABLE_OFF.

Información de la 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 framework.

Valores devueltos:

0: En una operación exitosa.

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

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

-EUSERS: los recursos necesarios para activar el modo de linterna no están disponibles, generalmente porque otros dispositivos de cámara están reteniendo los recursos para que no sea posible usar 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: