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.
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.
buffer_handle_t* buffer |
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.
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().
camera3_stream_t * stream |
A documentação desse struct foi gerada com base no seguinte arquivo:
- hardware/libhardware/include/hardware/ camera3.h