Un unico produttore, più consumatori per il trasporto del buffer della fotocamera

Questa funzionalità introduce un insieme di metodi che consente ai client della videocamera di aggiungere e rimuovere dinamicamente le piattaforme di output mentre la sessione di acquisizione è attiva e lo streaming della videocamera è in corso. Un nuovo output può essere mappato a uno stream specifico di videocamera condivisa selezionata dall'utente. Dopo aver aggiunto una superficie, puoi rimuoverla in qualsiasi momento.

L'idea generale è condividere i buffer associati a un determinato stream della videocamera in più superfici di output. Un contatore di riferimento interno tiene traccia degli buffer quando sono pronti per un'ulteriore elaborazione lato consumer. Quando tutti i consumatori completano le rispettive attività, il buffer viene rimosso dalla coda ed è disponibile per la videocamera.

Condivisione del buffer

Figura 1. Condivisione del buffer

La Figura 1 mostra uno scenario di esempio in cui i buffer elaborati dallo stream 2 della videocamera vengono collegati e scollegati dinamicamente, conteggiati e gestiti dal componente dello splitter dello stream all'interno di uno stream di output condiviso dedicato all'interno del servizio della videocamera.

Esempi e origine

L'implementazione principale di questa funzionalità è disponibile nel modulo Camera3StreamSplitter. La documentazione relativa a questa funzionalità è disponibile nella documentazione di riferimento per gli sviluppatori:

Implementazione

Non è richiesta alcuna implementazione a livello di HAL della fotocamera, poiché questa funzionalità è implementata a livello di framework.

Convalida

L'implementazione deve superare i casi CTS che coprono questa funzionalità dal modulo MultiViewTest e dalla libreria JNI nativa per l'API nativa.