Referencia de la estructura camera2_request_queue_src_ops

Referencia de la estructura camera2_request_queue_src_ops

#include < camera2.h >

Campos de datos

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)
 

Descripción detallada

Solicita el protocolo de la cola de entrada:

El framework contiene la cola y su contenido. Al principio, la cola está vacía.

  1. Cuando se coloca el primer búfer de metadatos en la cola, el framework le indica al dispositivo que llame a notify_request_queue_not_empty().
  2. Después de recibir notify_request_queue_not_empty, el dispositivo debe llamar a dequeue() una vez que esté listo para controlar el siguiente búfer.
  3. Una vez que el dispositivo haya procesado un búfer y esté listo para el siguiente, debe volver a llamar a dequeue() en lugar de esperar una notificación. Si no hay más búferes disponibles, dequeue() mostrará un valor nulo. Después de este punto, cuando un búfer esté disponible, el framework debe volver a llamar a notify_request_queue_not_empty(). Si el dispositivo recibe un valor NULL de la cola, no es necesario que vuelva a consultarla hasta que se reciba una llamada notify_request_queue_not_empty() de la fuente.
  4. Si el dispositivo llama a buffer_count() y recibe 0, esto no significa que el framework proporcionará una llamada a notify_request_queue_not_empty(). El framework solo proporcionará una notificación de este tipo después de que el dispositivo haya recibido un valor NULL de la cola de espera o en el inicio inicial.
  5. La llamada dequeue() en respuesta a notify_request_queue_not_empty() puede estar en el mismo subproceso que la llamada notify_request_queue_not_empty() y se puede realizar desde la llamada de notificación.
  6. Todos los búferes de solicitudes eliminados de la cola se deben devolver al framework llamando a free_request, incluso cuando se producen errores, se solicita una limpieza del dispositivo o cuando se apaga el dispositivo.

Definición en la línea 220 del archivo camera2.h .

Documentación de campos

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

Obtén un búfer de metadatos del framework. Devuelve OK si no hay errores. Si la cola está vacía, muestra NULL en el búfer. En ese caso, el dispositivo debe esperar un mensaje notify_request_queue_not_empty() antes de intentar volver a quitar elementos de la cola. Los búferes obtenidos de esta manera se deben devolver al framework con free_request() .

Definición en la línea 237 del archivo camera2.h .

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

Devuelve un búfer de metadatos al framework una vez que se haya usado, o si se produce un error o un cierre.

Definición en la línea 243 del archivo camera2.h .

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

Obtén el recuento de búferes de solicitudes pendientes en la cola. Puede mostrar CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS si actualmente se configuró una solicitud repetida (solicitud de transmisión). Llamar a este método no tiene efecto en si el framework llamará al método notify_request_queue_not_empty().

Definición en la línea 228 del archivo camera2.h .


La documentación de esta struct se generó a partir del siguiente archivo: