O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Transporte de buffer de câmera de múltiplos consumidores para produtor único

Este recurso apresenta um conjunto de métodos que permite aos clientes da câmera adicionar e remover superfícies de saída dinamicamente enquanto a sessão de captura está ativa e o streaming da câmera está em andamento. Uma nova saída pode mapear para um específico, selecionado pelo usuário da câmera compartilhado fluxo. Depois que uma superfície é adicionada, ela pode ser removida a qualquer momento.

A ideia geral é compartilhar os buffers associados a um fluxo de câmera específico dentro de várias superfícies de saída. Um contador de referência interno mantém o controle dos buffers conforme eles se tornam prontos para processamento adicional no lado do consumidor. Quando todos os consumidores concluem suas respectivas tarefas, o buffer é retirado da fila e fica disponível para a câmera.

Compartilhamento de buffer

Partilha Figura 1. Tampão

A Figura 1 representa um cenário de exemplo em que os buffers processados ​​pelo fluxo de câmera 2 são dinamicamente anexados e desconectados, contados por referência e gerenciados pelo componente divisor de fluxo dentro de um fluxo de saída compartilhado dedicado dentro do serviço de câmera.

Exemplos e fonte

A implementação núcleo deste recurso pode ser encontrada no Camera3StreamSplitter módulo. A documentação sobre este recurso pode ser encontrada na referência do desenvolvedor:

Implementação

Nenhuma implementação é necessária no lado do HAL da câmera, pois esse recurso é implementado no lado da estrutura.

Validação

Sua implementação deve passar casos de CTS que cobrem esse recurso a partir do MultiViewTest módulo ea biblioteca JNI nativo para a API nativa.