Referência da estrutura camera3_stream_buffer

Referência da estrutura camera3_stream_buffer

#include < camera3.h >

Campos de dados

camera3_stream_t stream
 
buffer_handle_t *  buffer
 
int  status
 
int  acquire_fence
 
int  release_fence
 

Descrição detalhada

camera3_stream_buffer_t:

Um único buffer de um stream camera3. Ele inclui um handle para o stream pai, o handle para o buffer gralloc e as cercas de sincronização.

O buffer não especifica se ele será usado para entrada ou saída. Isso é determinado pelo tipo de stream pai e como o buffer é transmitido ao dispositivo HAL.

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

Documentação do campo

int acquire_fence

A cerca de sincronização de aquisição para este buffer. O HAL precisa aguardar o fd da cerca antes de tentar ler ou gravar nesse buffer.

O framework pode ser definido como -1 para indicar que não é necessário esperar por esse buffer.

Quando o HAL retorna um buffer de saída para o framework com process_capture_result(), o acquire_fence precisa ser definido como -1. Se a HAL nunca esperar na acquire_fence devido a um erro no preenchimento de um buffer, ao chamar process_capture_result(), a HAL precisa definir o release_fence do buffer como o acquire_fence transmitido a ele pelo framework. Isso permite que o framework aguarde na cerca antes de reutilizar o buffer.

Para buffers de entrada, o HAL não pode mudar o campo acquire_fence durante a chamada process_capture_request().

>= CAMERA_DEVICE_API_VERSION_3_2:

Quando o HAL retorna um buffer de entrada para o framework com process_capture_result(), o acquire_fence precisa ser definido como -1. Se o HAL nunca esperar na cerca de aquisição de buffer de entrada devido a um erro, as cercas de sincronização precisam ser processadas de maneira semelhante à dos buffers de saída.

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

buffer_handle_t* buffer

O identificador nativo para o buffer

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

int release_fence

A cerca de sincronização de liberação para este buffer. O HAL precisa definir essa cerca ao retornar buffers para o framework ou gravar -1 para indicar que nenhuma espera é necessária para esse buffer.

Para os buffers de saída, as cercas precisam ser definidas na matriz output_buffers transmitida para process_capture_result().

<= CAMERA_DEVICE_API_VERSION_3_1:

Para o buffer de entrada, a cerca de liberação precisa ser definida pela chamada process_capture_request().

>= CAMERA_DEVICE_API_VERSION_3_2:

Para o buffer de entrada, as cercas precisam ser definidas no input_buffer transmitido para process_capture_result().

Depois de sinalizar o release_fence para esse buffer, o HAL não deve fazer mais tentativas de acesso a ele, já que a propriedade foi totalmente transferida de volta para o framework.

Se uma cerca de -1 foi especificada, a propriedade desse buffer é transferida imediatamente após a chamada de process_capture_result.

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

int status

Estado atual do buffer, um dos valores camera3_buffer_status_t. O framework não vai transmitir buffers para a HAL que estão em um estado de erro. Caso um buffer não possa ser preenchido pela HAL, o status dele precisa ser definido como CAMERA3_BUFFER_STATUS_ERROR quando retornado ao framework com process_capture_result().

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

O handle da transmissão a que este buffer está associado

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


A documentação desse struct foi gerada com base no seguinte arquivo: