Referência de estrutura camera_module

Referência de estrutura camera_module

#include < camera_common.h >

Campos de dados

hw_module_t comum
interno(* get_number_of_cameras )(vazio)
interno(* get_camera_info )(int camera_id, struct camera_info *info)
interno(* set_callbacks )(const camera_module_callbacks_t *retornos de chamada)
vazio(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
interno(* open_legacy )(const struct hw_module_t *módulo, const char *id, uint32_t halVersion, struct hw_device_t **dispositivo)
interno(* set_torch_mode )(const char *camera_id, bool habilitado)
interno(* iniciar )()
vazio * reservado [5]

Descrição detalhada

Definição na linha 646 do arquivo camera_common.h .

Documentação de campo

Métodos comuns do módulo da câmera. Este deve ser o primeiro membro de camera_module , pois os usuários desta estrutura lançarão um ponteiro hw_module_t para camera_module em contextos onde é conhecido que hw_module_t faz referência a um camera_module .

Os valores de retorno para common.methods->open para camera_module são:

0: Em uma abertura bem-sucedida do dispositivo de câmera.

-ENODEV: O dispositivo da câmera não pode ser aberto devido a um erro interno.

-EINVAL: Os argumentos de entrada são inválidos, ou seja, o id é inválido e/ou o módulo é inválido.

-EBUSY: O dispositivo de câmera já foi aberto para este ID de câmera (usando este método ou open_legacy), independentemente da versão HAL do dispositivo em que foi aberto.

-EUSERS: O número máximo de dispositivos de câmera que podem ser abertos simultaneamente já foram abertos, seja por este método ou pelo método open_legacy.

Todos os outros valores de retorno de common.methods->open serão tratados como -ENODEV.

Definição na linha 674 do arquivo camera_common.h .

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

get_camera_info:

Retorna as informações estáticas da câmera para um determinado dispositivo de câmera. Estas informações podem não mudar para um dispositivo de câmera.

Valores de retorno:

0: Em uma operação bem-sucedida

-ENODEV: A informação não pode ser fornecida devido a um erro interno.

-EINVAL: Os argumentos de entrada são inválidos, ou seja, o id é inválido e/ou o módulo é inválido.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 ou superior:

Quando uma câmera é desconectada, seu ID de câmera se torna inválido. Chamar este método com este ID de câmera inválido obterá metadados estáticos de câmera -EINVAL e NULL ( camera_info.static_camera_characteristics ).

Definição na linha 727 do arquivo camera_common.h .

int(* get_number_of_cameras)(void)

obter_número_de_câmeras:

Retorna o número de dispositivos de câmera acessíveis por meio do módulo de câmera. Os dispositivos de câmera são numerados de 0 a N-1, onde N é o valor retornado por esta chamada. O nome do dispositivo de câmera para open() é simplesmente o número convertido em uma string. Ou seja, "0" para ID de câmera 0, "1" para ID de câmera 1.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 ou inferior:

O valor aqui deve ser estático e não pode ser alterado após a primeira chamada para este método.

CAMERA_MODULE_API_VERSION_2_4 ou superior:

O valor aqui deve ser estático e deve contar apenas câmeras integradas, que possuem valores de câmera voltada para CAMERA_FACING_BACK ou CAMERA_FACING_FRONT ( camera_info.facing ). O HAL não deve incluir as câmeras externas ( camera_info.facing == CAMERA_FACING_EXTERNAL) no valor de retorno desta chamada. Os frameworks usarão o retorno de chamada camera_device_status_change para gerenciar o número de câmeras externas.

Definição na linha 701 do arquivo camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Obtenha métodos para consultar informações de tags de metadados de extensão do fornecedor. O HAL deve preencher todos os métodos de operação de tags de fornecedor ou deixar as operações inalteradas se nenhuma tag de fornecedor for definida.

A estrutura vendor_tag_ops usada aqui é definida em: system/media/camera/include/system/vendor_tags.h

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Não fornecido pelo módulo HAL. Framework não pode chamar esta função.

CAMERA_MODULE_API_VERSION_2_2: Válido para ser chamado pelo framework.

Definição na linha 778 do arquivo camera_common.h .

int(* inicialização)()

iniciar:

Este método é chamado pelo serviço de câmera antes de qualquer outro método ser invocado, logo após a biblioteca HAL da câmera ter sido carregada com sucesso. Pode ser deixado como NULL pelo módulo HAL, se nenhuma inicialização for necessária.

Ele pode ser usado por implementações HAL para realizar inicialização e outras operações únicas.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Não fornecido pelo módulo HAL. Framework não chamará esta função.

CAMERA_MODULE_API_VERSION_2_4: Se não for NULL, sempre será chamado pelo framework uma vez após o módulo HAL ser carregado, antes de qualquer outro método do módulo HAL ser chamado.

Valores de retorno:

0: Em uma operação bem-sucedida.

-ENODEV: A inicialização não pode ser concluída devido a um erro interno. O HAL deve ser assumido como estando em um estado não funcional.

Definição na linha 909 do arquivo 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:

Abra um dispositivo HAL de câmera herdado específico se várias versões da API HAL de dispositivos forem suportadas por este módulo HAL de câmera. Por exemplo, se o módulo de câmera suportar API de dispositivo CAMERA_DEVICE_API_VERSION_1_0 e CAMERA_DEVICE_API_VERSION_3_2 para o mesmo ID de câmera, a estrutura poderá chamar essa função para abrir o dispositivo de câmera como dispositivo CAMERA_DEVICE_API_VERSION_1_0.

Este é um método opcional. Um módulo Camera HAL não precisa suportar mais de uma versão HAL de dispositivo por dispositivo, e tais módulos podem retornar -ENOSYS para todas as chamadas para este método. Para todas as versões mais antigas da API do dispositivo HAL que não são suportadas, ele pode retornar -EOPNOTSUPP. Quando ocorrerem os casos acima, o método open() normal (common.methods->open) será usado pela estrutura.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: Não fornecido pelo módulo HAL. Framework não chamará esta função.

CAMERA_MODULE_API_VERSION_2_3: Válido para ser chamado pelo framework.

Valores de retorno:

0: Em uma abertura bem-sucedida do dispositivo de câmera.

-ENOSYS Este método não é suportado.

-EOPNOTSUPP: A versão HAL solicitada não é suportada por este método.

-EINVAL: Os argumentos de entrada são inválidos, ou seja, o id é inválido e/ou o módulo é inválido.

-EBUSY: O dispositivo da câmera já foi aberto para este ID de câmera (usando este método ou o método common.methods->open), independentemente da versão HAL do dispositivo com a qual foi aberto.

-EUSERS: O número máximo de dispositivos de câmera que podem ser abertos simultaneamente já foram abertos, seja por este método ou pelo método common.methods->open.

Definição na linha 824 do arquivo camera_common.h .

vazio* reservado[5]

Definição na linha 912 do arquivo camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *retornos de chamada)

set_callbacks:

Fornece ponteiros de função de retorno de chamada para o módulo HAL para informar a estrutura de eventos assíncronos do módulo de câmera. A estrutura chamará esta função uma vez após o carregamento inicial do módulo HAL da câmera, depois que o método get_number_of_cameras() for chamado pela primeira vez e antes de qualquer outra chamada ao módulo.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Não fornecido pelo módulo HAL. Framework não pode chamar esta função.

CAMERA_MODULE_API_VERSION_2_1:

Válido para ser chamado pelo framework.

Valores de retorno:

0: Em uma operação bem-sucedida

-ENODEV: A operação não pode ser concluída devido a um erro interno.

-EINVAL: Os argumentos de entrada são inválidos, ou seja, os retornos de chamada são nulos

Definição na linha 758 do arquivo camera_common.h .

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

set_torch_mode:

Ative ou desative o modo tocha da unidade de flash associada a uma determinada ID de câmera. Se a operação for bem-sucedida, o HAL deverá notificar o estado da tocha da estrutura invocando camera_module_callbacks.torch_mode_status_change() com o novo estado.

O dispositivo da câmera tem maior prioridade de acesso à unidade de flash. Quando há algum conflito de recursos, como open() é chamado para abrir um dispositivo de câmera, o módulo HAL deve notificar a estrutura por meio de camera_module_callbacks.torch_mode_status_change() que o modo tocha foi desligado e o estado do modo tocha se tornou TORCH_MODE_STATUS_NOT_AVAILABLE. Quando os recursos para ativar o modo tocha ficam disponíveis novamente, o módulo HAL deve notificar a estrutura por meio de camera_module_callbacks.torch_mode_status_change() que o estado do modo tocha se tornou TORCH_MODE_STATUS_AVAILABLE_OFF para que set_torch_mode() seja chamado.

Quando a estrutura chama set_torch_mode() para ativar o modo tocha de uma unidade de flash, se o HAL não puder manter vários modos de tocha ativados simultaneamente, o HAL deverá desligar o modo tocha que foi ativado por uma chamada set_torch_mode() anterior e notificar a estrutura que o estado do modo tocha dessa unidade de flash se tornou TORCH_MODE_STATUS_AVAILABLE_OFF.

Informações de versão (com base em camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Não fornecido pelo módulo HAL. Framework não chamará esta função.

CAMERA_MODULE_API_VERSION_2_4: Válido para ser chamado pelo framework.

Valores de retorno:

0: Em uma operação bem-sucedida.

-ENOSYS: O dispositivo da câmera não suporta esta operação. Ele será retornado se e somente se android.flash.info.available for falso.

-EBUSY: O dispositivo da câmera já está em uso.

-EUSERS: Os recursos necessários para ativar o modo tocha não estão disponíveis, normalmente porque outros dispositivos de câmera estão retendo os recursos para impossibilitar o uso da unidade de flash.

-EINVAL: camera_id é inválido.

Definição na linha 878 do arquivo camera_common.h .


A documentação desta estrutura foi gerada a partir do seguinte arquivo: