referência de estrutura camera_module

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

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: