Referência de estrutura camera3_stream_buffer
#include < camera3.h >
Campos de dados | |
câmera3_stream_t * | fluxo |
buffer_handle_t * | amortecedor |
interno | status |
interno | adquirir_fence |
interno | release_fence |
Descrição detalhada
camera3_stream_buffer_t:
Um único buffer de um fluxo camera3. Ele inclui um identificador para seu fluxo pai, um identificador para o próprio buffer gralloc e cercas de sincronização
O buffer não especifica se deve ser usado para entrada ou saída; que é determinado pelo seu tipo de fluxo pai e como o buffer é passado para o dispositivo HAL.
Documentação de campo
int adquirir_fence |
O limite de sincronização de aquisição para esse buffer. O HAL deve esperar neste limite antes de tentar ler ou gravar neste buffer.
A estrutura pode ser definida como -1 para indicar que nenhuma espera é necessária para este buffer.
Quando o HAL retorna um buffer de saída para a estrutura com process_capture_result(), o adquire_fence deve ser definido como -1. Se o HAL nunca espera pelo adquire_fence devido a um erro no preenchimento de um buffer, ao chamar process_capture_result() o HAL deve definir o release_fence do buffer como o adquire_fence passado a ele pela estrutura. Isso permitirá que a estrutura espere em cima do muro antes de reutilizar o buffer.
Para buffers de entrada, o HAL não deve alterar o campo adquire_fence durante a chamada process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Quando o HAL retorna um buffer de entrada para a estrutura com process_capture_result(), o adquire_fence deve ser definido como -1. Se o HAL nunca esperar pela cerca de aquisição do buffer de entrada devido a um erro, as cercas de sincronização deverão ser tratadas de forma semelhante à forma como são tratadas para buffers de saída.
buffer_handle_t* buffer |
int release_fence |
O limite de sincronização de liberação para esse buffer. O HAL deve definir esse limite ao retornar buffers para a estrutura ou escrever -1 para indicar que nenhuma espera é necessária para esse buffer.
Para os buffers de saída, as cercas devem ser definidas no array output_buffers passado para process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
Para o buffer de entrada, o limite de liberação deve ser definido pela chamada process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Para o buffer de entrada, as cercas devem ser definidas no input_buffer passado para process_capture_result().
Depois de sinalizar o release_fence para este buffer, o HAL não deve fazer mais nenhuma tentativa de acessar este buffer, pois a propriedade foi totalmente transferida de volta para a estrutura.
Se um limite -1 for especificado, a propriedade desse buffer será transferida de volta imediatamente após a chamada de process_capture_result.
status interno |
Estado atual do buffer, um dos valores camera3_buffer_status_t. A estrutura não passará buffers para o HAL que estejam em estado de erro. Caso um buffer não possa ser preenchido pelo HAL, ele deverá ter seu status definido como CAMERA3_BUFFER_STATUS_ERROR quando retornado ao framework com process_capture_result().
camera3_stream_t * fluxo |
A documentação desta estrutura foi gerada a partir do seguinte arquivo:
- hardware/libhardware/incluir/hardware/ camera3.h