Referência de estrutura camera2_request_queue_src_ops

Referência de estrutura camera2_request_queue_src_ops

#include < camera2.h >

Campos de dados

interno(* request_count )(const estrutura camera2_request_queue_src_ops *q)
interno(* dequeue_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)
interno(* free_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

Descrição detalhada

Solicitar protocolo de fila de entrada:

A estrutura contém a fila e seu conteúdo. No início, a fila está vazia.

  1. Quando o primeiro buffer de metadados é colocado na fila, a estrutura sinaliza o dispositivo chamando notify_request_queue_not_empty().
  2. Depois de receber notify_request_queue_not_empty, o dispositivo deve chamar dequeue() quando estiver pronto para lidar com o próximo buffer.
  3. Depois que o dispositivo tiver processado um buffer e estiver pronto para o próximo buffer, ele deverá chamar dequeue() novamente em vez de aguardar uma notificação. Se não houver mais buffers disponíveis, dequeue() retornará NULL. Após este ponto, quando um buffer estiver disponível, a estrutura deverá chamar notify_request_queue_not_empty() novamente. Se o dispositivo receber um retorno NULL do desenfileiramento, ele não precisará consultar a fila novamente até que uma chamada notify_request_queue_not_empty() seja recebida da origem.
  4. Se o dispositivo chamar buffer_count() e receber 0, isso não significa que a estrutura fornecerá uma chamada notify_request_queue_not_empty(). A estrutura só fornecerá tal notificação depois que o dispositivo receber um NULL do desenfileiramento ou na inicialização.
  5. A chamada dequeue() em resposta a notify_request_queue_not_empty() pode estar no mesmo thread que a chamada notify_request_queue_not_empty() e pode ser executada dentro da chamada de notificação.
  6. Todos os buffers de solicitação retirados da fila devem ser retornados à estrutura chamando free_request, inclusive quando ocorrem erros, uma liberação do dispositivo é solicitada ou quando o dispositivo está sendo desligado.

Definição na linha 220 do arquivo camera2.h .

Documentação de campo

int(* dequeue_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)

Obtenha um buffer de metadados da estrutura. Retorna OK se não houver erro. Se a fila estiver vazia, retorna NULL no buffer. Nesse caso, o dispositivo deve aguardar uma mensagem notify_request_queue_not_empty() antes de tentar desenfileirar novamente. Os buffers obtidos desta forma devem ser retornados ao framework com free_request() .

Definição na linha 237 do arquivo camera2.h .

int(* free_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

Retorne um buffer de metadados para a estrutura depois que ele for usado ou se ocorrer um erro ou desligamento.

Definição na linha 243 do arquivo camera2.h .

int(* request_count)(const estrutura camera2_request_queue_src_ops *q)

Obtenha a contagem de buffers de solicitação pendentes na fila. Pode retornar CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS se uma solicitação repetida (solicitação de fluxo) estiver configurada no momento. Chamar esse método não afeta se o método notify_request_queue_not_empty() será chamado pela estrutura.

Definição na linha 228 do arquivo camera2.h .


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