Referencia de la estructura camera3_stream_buffer

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.

Definición en la línea 1755 del archivo camera3.h .

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.

Definición en la línea 1800 del archivo camera3.h .

buffer_handle_t* buffer

El control nativo del búfer

Definición en la línea 1764 del archivo camera3.h .

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.

Definición en la línea 1827 del archivo camera3.h .

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().

Definición en la línea 1773 del archivo camera3.h .

camera3_stream_t * transmisión

Es el identificador de la transmisión con la que está asociado este búfer.

Definición en la línea 1759 del archivo camera3.h .


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