Referencia de la estructura camera3_stream_buffer
#include <
camera3.h
>
Campos de datos |
|
camera3_stream_t * | transmisión |
buffer_handle_t * | búfer |
int | estado |
int | acquire_fence |
int | release_fence |
Descripción detallada
camera3_stream_buffer_t:
Un solo búfer de una transmisión de camera3. Incluye un identificador para su flujo superior, el identificador del búfer de gralloc y las cercas de sincronización.
El búfer no especifica si se usará para entrada o salida; eso se determina según el tipo de transmisión superior y cómo se pasa el búfer al dispositivo HAL.
Documentación de campos
int acquire_fence |
El cerco de sincronización de adquisición para este búfer. El HAL debe esperar en este fd de cerca antes de intentar leer o escribir en este búfer.
El framework se puede establecer en -1 para indicar que no es necesario esperar para este búfer.
Cuando HAL muestra un búfer de salida al framework con process_capture_result(), acquire_fence se debe establecer en -1. Si el sistema HAL nunca espera en el acquire_fence debido a un error en el llenado de un búfer, cuando se llame a process_capture_result(), el sistema HAL debe establecer el release_fence del búfer como el acquire_fence que le pasó el framework. Esto permitirá que el framework espere en el límite antes de volver a usar el búfer.
En el caso de los búferes de entrada, el sistema HAL no debe cambiar el campo acquire_fence durante la llamada a process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Cuando el HAL muestra un búfer de entrada al framework con process_capture_result(), acquire_fence se debe establecer en -1. Si el HAL nunca espera en la cerca de adquisición del búfer de entrada debido a un error, las cercas de sincronización se deben controlar de manera similar a la forma en que se controlan para los búferes de salida.
buffer_handle_t* buffer |
int release_fence |
Es la cerca de sincronización de lanzamiento para este búfer. El sistema HAL debe establecer esta barrera cuando devuelve búferes al framework o escribir -1 para indicar que no se requiere espera para este búfer.
Para los búferes de salida, los cierres se deben establecer en el array output_buffers que se pasa a process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
Para el búfer de entrada, la llamada process_capture_request() debe establecer la cerca de liberación.
>= CAMERA_DEVICE_API_VERSION_3_2:
Para el búfer de entrada, los cierres deben establecerse en el input_buffer que se pasa a process_capture_result().
Después de indicar el release_fence para este búfer, el sistema HAL no debe realizar más intentos de acceso a este búfer, ya que la propiedad se transfirió por completo al framework.
Si se especificó un límite de -1, la propiedad de este búfer se transfiere de inmediato después de la llamada a process_capture_result.
Estado de int |
Es el estado actual del búfer, uno de los valores de camera3_buffer_status_t. El framework no pasará búferes al HAL que estén en un estado de error. En caso de que el HAL no pueda completar un búfer, su estado debe establecerse en CAMERA3_BUFFER_STATUS_ERROR cuando se devuelva al framework con process_capture_result().
camera3_stream_t * transmisión |
La documentación de esta struct se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ camera3.h