Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Transporte de búfer de cámara de consumidor múltiple de un solo productor

Esta función presenta un conjunto de métodos que permiten a los clientes de la cámara agregar y eliminar superficies de salida de forma dinámica mientras la sesión de captura está activa y la transmisión de la cámara está en curso. Una nueva salida se puede asignar a una, seleccionada por el usuario específico de cámara compartida corriente. Después de agregar una superficie, se puede quitar en cualquier momento.

La idea general es compartir los búferes asociados con un flujo de cámara en particular dentro de varias superficies de salida. Un contador de referencia interno realiza un seguimiento de los búferes a medida que están listos para su posterior procesamiento en el lado del consumidor. Cuando todos los consumidores completan sus respectivas tareas, el búfer se retira de la cola y está disponible para la cámara.

Compartir búfer

Intercambio de la Figura 1. Buffer

La Figura 1 muestra un escenario de ejemplo en el que los búferes procesados ​​por el flujo de la cámara 2 se conectan y desconectan dinámicamente, se cuentan las referencias y se administran mediante el componente divisor de flujo dentro de un flujo de salida compartido dedicado dentro del servicio de la cámara.

Ejemplos y fuente

La aplicación principal de esta característica se puede encontrar en el Camera3StreamSplitter módulo. La documentación sobre esta función se puede encontrar en la referencia para desarrolladores:

Implementación

No se requiere implementación en el lado de la cámara HAL, ya que esta función se implementa en el lado del marco.

Validación

Su aplicación debe pasar casos de CTS que cubren esta característica de la MultiViewTest módulo y la biblioteca JNI nativo para la API nativa.