Referência da estrutura camera2_request_queue_src_ops

Referência da estrutura camera2_request_queue_src_ops

#include < camera2.h >

Campos de dados

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

Descrição detalhada

Solicitar protocolo de fila de entrada:

O framework armazena a fila e o conteúdo dela. No início, a fila está vazia.

  1. Quando o primeiro buffer de metadados é colocado na fila, o framework sinaliza o dispositivo chamando notify_request_queue_not_empty().
  2. Depois de receber notify_request_queue_not_empty, o dispositivo precisa chamar dequeue() quando estiver pronto para processar o próximo buffer.
  3. Depois que o dispositivo processa um buffer e está pronto para o próximo, ele precisa chamar dequeue() novamente em vez de esperar uma notificação. Se não houver mais buffers disponíveis, a função dequeue() vai retornar NULL. Depois disso, quando um buffer fica disponível, o framework precisa chamar notify_request_queue_not_empty() novamente. Se o dispositivo receber um retorno NULL da dequeue, 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 o framework vai fornecer uma chamada notify_request_queue_not_empty(). O framework só vai fornecer essa notificação depois que o dispositivo receber um NULL da fila de desempilhação ou na inicialização inicial.
  5. A chamada dequeue() em resposta a notify_request_queue_not_empty() pode estar na mesma linha de execução que a chamada notify_request_queue_not_empty() e pode ser executada na chamada de notificação.
  6. Todos os buffers de solicitação retirados da fila precisam ser retornados ao framework chamando free_request, inclusive quando ocorrem erros, quando um flush do dispositivo é solicitado ou quando o dispositivo é desligado.

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

Documentação do campo

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

Receber um buffer de metadados do framework. Retorna "OK" se não houver erro. Se a fila estiver vazia, retornará NULL no buffer. Nesse caso, o dispositivo precisa aguardar uma mensagem notify_request_queue_not_empty() antes de tentar retirar a fila de novo. Os buffers obtidos dessa forma precisam 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 o framework 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 struct camera2_request_queue_src_ops *q)

Receber 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 streaming) estiver configurada. Chamar esse método não afeta se o método notify_request_queue_not_empty() será chamado pelo framework.

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


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