referência de estrutura camera3_stream

referência de estrutura camera3_stream

#include < camera3.h >

Campos de dados

int stream_type
uint32_t largura
uint32_t altura
int formato
uint32_t uso
uint32_t max_buffers
vazio * privado
android_dataspace_t data_space
int rotação
vazio * reservado [7]

Descrição detalhada

camera3_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 do gralloc e a contagem máxima de buffer em andamento.

As estruturas de fluxo são de propriedade da estrutura, mas os ponteiros para um camera3_stream passados ​​para o HAL por configure_streams() são válidos até o final da primeira chamada configure_streams() subsequente que não inclui esse 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 por HAL durante uma chamada configure_streams(), exceto para 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 sinalizadores de uso do consumidor em streams em que a câmera é produtora (tipos de stream de SAÍDA e BIDIRECIONAL) 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, dataSpace define o espaço de cores dos dados da imagem. Além disso, para alguns formatos, dataSpace indica se os dados baseados em imagem ou profundidade são solicitados. Consulte system/core/include/system/graphics.h para obter detalhes de formatos e valores de dataSpace válidos para cada formato.

Versão informação:

< CAMERA_DEVICE_API_VERSION_3_3:

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

= CAMERA_DEVICE_API_VERSION_3_3:

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

>= CAMERA_DEVICE_API_VERSION_3_4:

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

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

formato int

O formato de pixel para os 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 endpoint 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 apenas nos tamanhos, sinalizadores de uso e formatos dos fluxos configurados.

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

uint32_t altura

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 ter desenfileirado ao mesmo tempo. O dispositivo HAL pode não ter mais buffers em andamento desse fluxo do que esse valor.

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

void* priv

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

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

void* reservado[7]

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

rotação interna

A rotação de saída necessária do fluxo, um dos valores camera3_stream_rotation_t. Isso deve ser inspecionado pela HAL junto com a largura e a altura do fluxo. Por exemplo, se a rotação for de 90 graus e a largura e a 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 em 90 graus no sentido anti-horário. O campo de rotação é no-op 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. O 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. O HAL deve inspecionar esse campo durante a configuração do fluxo e retornar -EINVAL se o HAL não puder executar 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 do fluxo, um dos valores camera3_stream_type_t.

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

uso do uint32_t

Os sinalizadores de uso do gramloc para este fluxo, conforme necessário pelo 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, esses são os sinalizadores de uso do produtor do HAL. Para fluxos de entrada, esses são os sinalizadores de uso do consumidor do HAL. Os sinalizadores de uso do produtor e do consumidor serão combinados e, em seguida, passados ​​para o módulo gralloc HAL da plataforma para alocar os buffers gralloc para cada fluxo.

Versão informação:

== CAMERA_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 BIDIRECIONAL, quando passado via configure_streams(), o valor inicial disso são os sinalizadores 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 é 0. Para todos os streams passados ​​via configure_streams(), o HAL deve escrever sobre este campo com seus sinalizadores de uso.

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

uint32_t largura

A largura em pixels dos buffers neste fluxo

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


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