Referência de estrutura camera3_stream

Referência de estrutura camera3_stream

#include < camera3.h >

Campos de dados

interno stream_type
uint32_t largura
uint32_t altura
interno formatar
uint32_t uso
uint32_t max_buffers
vazio * privado
android_dataspace_t espaço_dados
interno rotação
vazio * reservado [7]

Descrição detalhada

câmera3_stream_t:

Um identificador para um único fluxo de entrada ou saída de câmera. Um fluxo é definido pela estrutura por sua resolução e formato de buffer e, adicionalmente, pelo HAL com os sinalizadores de uso gralloc e a contagem máxima de buffer em voo.

As estruturas de fluxo são de propriedade da estrutura, mas os ponteiros para um camera3_stream passado para o HAL por configure_streams() são válidos até o final da primeira chamada configure_streams() subsequente que não inclui aquele camera3_stream como argumento, ou até o final de a chamada close().

Todos os membros controlados pela estrutura camera3_stream são imutáveis ​​​​uma vez que camera3_stream é passado para configure_streams(). O HAL só pode alterar os parâmetros controlados pelo HAL durante uma chamada configure_streams(), exceto o conteúdo do ponteiro privado.

Se uma chamada configure_streams() retornar um erro não fatal, todos os fluxos ativos permanecerão válidos como se configure_streams() não tivesse sido chamado.

O ponto final do fluxo não é visível para o dispositivo HAL da câmera. Em DEVICE_API_VERSION_3_1, isso foi alterado para compartilhar flags de uso do consumidor em streams onde a câmera é produtora (tipos de stream OUTPUT e BIDIRECTIONAL) veja o campo de uso abaixo.

Definição na linha 1523 do arquivo camera3.h .

Documentação de campo

android_dataspace_t data_space

Um campo que descreve o conteúdo do buffer. O formato e as dimensões do buffer definem o layout da memória e a estrutura dos buffers de fluxo, enquanto o dataSpace define o significado dos dados dentro do buffer.

Para a maioria dos formatos, o dataSpace define o espaço de cores dos dados da imagem. Além disso, para alguns formatos, o dataSpace indica se são solicitados dados baseados em imagem ou profundidade. Consulte system/core/include/system/graphics.h para obter detalhes de formatos e valores válidos de dataSpace para cada formato.

Versão informação:

<CÂMERA_DEVICE_API_VERSION_3_3:

Não definido e não deve ser acessado. dataSpace deve ser considerado HAL_DATASPACE_UNKNOWN, e o espaço de cores apropriado, etc., deve ser determinado a partir dos sinalizadores de uso e do formato.

=CÂMERA_DEVICE_API_VERSION_3_3:

Sempre definido pelo serviço de câmera. HAL deve usar este dataSpace para configurar o fluxo para o espaço de cores correto ou para selecionar entre saídas de cor e profundidade, se houver suporte. Os valores do espaço para dados são as definições herdadas em graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Sempre definido pelo serviço de câmera. HAL deve usar este dataSpace para configurar o fluxo para o espaço de cores correto ou para selecionar entre saídas de cor e profundidade, se houver suporte. Os valores de espaço para dados são definidos usando as definições de espaço para dados V0 em graphics.h

Definição na linha 1648 do arquivo camera3.h .

formato interno

O formato de pixel dos buffers neste fluxo. Formato é um valor da lista HAL_PIXEL_FORMAT_* em system/core/include/system/graphics.h ou de cabeçalhos específicos do dispositivo.

Se HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED for usado, o módulo gralloc da plataforma selecionará um formato com base nos sinalizadores de uso fornecidos pelo dispositivo da câmera e pelo outro ponto final do fluxo.

<= CAMERA_DEVICE_API_VERSION_3_1:

O dispositivo HAL da câmera deve inspecionar os buffers entregues a ele na chamada Register_stream_buffers() subsequente para obter os detalhes do formato específico da implementação, se necessário.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() não será chamado pela estrutura, portanto, o HAL deve configurar o ISP e o pipeline do sensor com base puramente nos tamanhos, sinalizadores de uso e formatos dos fluxos configurados.

Definição na linha 1565 do arquivo camera3.h .

altura uint32_t

A altura em pixels dos buffers neste fluxo

Definição na linha 1542 do arquivo camera3.h .

uint32_t max_buffers

O número máximo de buffers que o dispositivo HAL pode precisar retirar da fila ao mesmo tempo. O dispositivo HAL não pode ter mais buffers em andamento deste fluxo do que este valor.

Definição na linha 1608 do arquivo camera3.h .

nulo* privado

Um identificador para informações privadas de HAL para o fluxo. Não será inspecionado pelo código da estrutura.

Definição na linha 1614 do arquivo camera3.h .

vazio* reservado[7]

Definição na linha 1677 do arquivo camera3.h .

rotação interna

A rotação de saída necessária do stream, um dos valores camera3_stream_rotation_t. Isto deve ser inspecionado pela HAL juntamente com a largura e altura do fluxo. Por exemplo, se a rotação for de 90 graus e a largura e altura do fluxo forem 720 e 1280 respectivamente, o serviço de câmera fornecerá buffers de tamanho 720x1280 e o HAL deverá capturar uma imagem de 1280x720 e girar a imagem 90 graus no sentido anti-horário. O campo de rotação não funciona quando o tipo de fluxo é inserido. A câmera HAL deve ignorar o campo de rotação para um fluxo de entrada.

<= CAMERA_DEVICE_API_VERSION_3_2:

Não definido e não deve ser acessado. HAL não deve aplicar nenhuma rotação nas imagens de saída.

>= CAMERA_DEVICE_API_VERSION_3_3:

Sempre definido pelo serviço de câmera. HAL deve inspecionar este campo durante a configuração do fluxo e retornar -EINVAL se HAL não puder realizar tal rotação. HAL deve sempre suportar CAMERA3_STREAM_ROTATION_0, portanto, uma chamada configure_streams() não deve falhar para rotação não suportada se o campo de rotação de todos os fluxos for CAMERA3_STREAM_ROTATION_0.

Definição na linha 1674 do arquivo camera3.h .

int stream_type

O tipo de stream, um dos valores camera3_stream_type_t.

Definição na linha 1532 do arquivo camera3.h .

uso de uint32_t

Os sinalizadores de uso gralloc para este fluxo, conforme necessário para o HAL. Os sinalizadores de uso são definidos em gralloc.h (GRALLOC_USAGE_*) ou em cabeçalhos específicos do dispositivo.

Para fluxos de saída, estes são os sinalizadores de uso do produtor do HAL. Para fluxos de entrada, estes são os sinalizadores de uso do consumidor do HAL. Os sinalizadores de uso do produtor e do consumidor serão combinados e então passados ​​para o módulo HAL gralloc da plataforma para alocar os buffers gralloc para cada fluxo.

Versão informação:

== CÂMERA_DEVICE_API_VERSION_3_0:

Nenhum valor inicial garantido quando passado via configure_streams(). HAL não pode usar este campo como entrada e deve escrever sobre este campo com seus sinalizadores de uso.

>= CAMERA_DEVICE_API_VERSION_3_1:

Para stream_type OUTPUT e BIDIRECTIONAL, quando passado via configure_streams(), o valor inicial disso são os flags de uso do consumidor. O HAL pode usar esses sinalizadores de consumidor para decidir a configuração do fluxo. Para stream_type INPUT, quando passado via configure_streams(), o valor inicial disso é 0. Para todos os fluxos passados ​​via configure_streams(), o HAL deve escrever sobre este campo com seus flags de uso.

Definição na linha 1601 do arquivo camera3.h .

largura uint32_t

A largura em pixels dos buffers neste fluxo

Definição na linha 1537 do arquivo camera3.h .


A documentação desta estrutura foi gerada a partir do seguinte arquivo:
  • hardware/libhardware/incluir/hardware/ camera3.h