referência de estrutura camera_module
#include < camera_common.h >
Campos de dados | |
hw_module_t | comum |
int(* | get_number_of_cameras )(void) |
int(* | get_camera_info )(int camera_id, struct camera_info *info) |
int(* | set_callbacks )(const camera_module_callbacks_t *callbacks) |
vazio(* | get_vendor_tag_ops )(vendor_tag_ops_t *ops) |
int(* | open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device) |
int(* | set_torch_mode )(const char *camera_id, bool enabled) |
int(* | init )() |
vazio * | reservado [5] |
Descrição detalhada
Definição na linha 646 do arquivo camera_common.h .
Documentação de campo
hw_module_t comum |
Métodos comuns do módulo de câmera. Este deve ser o primeiro membro de camera_module pois os usuários desta estrutura irão converter um ponteiro hw_module_t para camera_module em contextos onde é conhecido que hw_module_t referencia um camera_module .
Os valores de retorno para common.methods->open for camera_module são:
0: Em uma abertura bem-sucedida do dispositivo da 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 da 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:
Retorne as informações estáticas da câmera para um determinado dispositivo de câmera. Essas 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, sua identificação de câmera se torna inválida. Chamar esse método com esse id de câmera inválido obterá -EINVAL e metadados estáticos de câmera NULL ( camera_info.static_camera_characteristics ).
Definição na linha 727 do arquivo camera_common.h .
int(* get_number_of_cameras)(void) |
get_number_of_cameras:
Retorna o número de dispositivos de câmera acessíveis através 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 da 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 esse método.
CAMERA_MODULE_API_VERSION_2_4 ou superior:
O valor aqui deve ser estático e deve contar apenas câmeras embutidas, que possuem valores de face de câmera 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 callback 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 tag de metadados de extensão de fornecedor. O HAL deve preencher todos os métodos de operação da tag do fornecedor ou deixar as operações inalteradas se nenhuma tag do 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 pode não chamar essa 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(* init)() |
iniciar:
Esse método é chamado pelo serviço da câmera antes de qualquer outro método ser invocado, logo após a biblioteca HAL da câmera ser carregada com êxito. 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 executar a 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. O 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 considerado 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 de API HAL de dispositivo forem suportadas por este módulo HAL de câmera. Por exemplo, se o módulo da câmera suportar a 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 dar suporte a mais de uma versão HAL de dispositivo por dispositivo, e esses módulos podem retornar -ENOSYS para todas as chamadas para esse 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 os casos acima ocorrerem, o método open() normal (common.methods->open) será usado pelo framework.
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. O 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 da 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 método common.methods->open), 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 common.methods->open.
Definição na linha 824 do arquivo camera_common.h .
void* reservado[5] |
Definição na linha 912 do arquivo camera_common.h .
int(* set_callbacks)(const camera_module_callbacks_t *callbacks) |
set_callbacks:
Forneça ponteiros de função de retorno de chamada para o módulo HAL para informar a estrutura de eventos do módulo de câmera assíncrona. A estrutura chamará essa 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 pode não chamar essa 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 enabled) |
set_torch_mode:
Ative ou desative o modo de lanterna da unidade de flash associada a uma determinada ID de câmera. Se a operação for bem-sucedida, o HAL deve notificar o estado do framework torch invocando camera_module_callbacks.torch_mode_status_change() com o novo estado.
O dispositivo da câmera tem uma prioridade mais alta no 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 da tocha foi desligado e o estado do modo da tocha se tornou TORCH_MODE_STATUS_NOT_AVAILABLE. Quando os recursos para ativar o modo tocha estiverem 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 de tocha de uma unidade flash, se HAL não puder manter vários modos de tocha ativados simultaneamente, HAL deve desligar o modo de tocha que foi ativado por uma chamada anterior de set_torch_mode() e notificar a estrutura que o estado do modo de tocha dessa unidade 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. O 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 é 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 de lanterna 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 para esta estrutura foi gerada a partir do seguinte arquivo:
- hardware/libhardware/include/hardware/ camera_common.h