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

Questa funzionalità introduce una serie di metodi che consentono ai client della videocamera di aggiungere rimuovono le piattaforme di output in modo dinamico mentre la sessione di acquisizione è attiva lo streaming della videocamera è in corso. Un nuovo output può essere mappato a uno specifico videocamera condivisa flusso di dati. Dopo aver aggiunto una superficie, puoi rimuoverla in qualsiasi momento.

L'idea generale è condividere i buffer associati a una particolare videocamera lo streaming all'interno di diverse sezioni di output. Un contatore di riferimenti interno tiene traccia dei buffer quando sono pronti per un'ulteriore elaborazione da parte dei consumatori. Quando tutti i consumatori completano le loro attività, il buffer viene rimosso dalla coda e è disponibile per la fotocamera.

Condivisione del buffer

Figura 1. Condivisione del buffer

La figura 1 mostra un esempio di scenario in cui i buffer elaborati dalla videocamera lo stream 2 è collegato e scollegato dinamicamente, i riferimenti vengono conteggiati e gestiti dal componente di suddivisione dei flussi all'interno di uno stream di output condiviso dedicato servizio videocamera.

Esempi e fonte

L'implementazione principale di questa funzione è disponibile nel Camera3StreamSplitter in maggior dettaglio più avanti in questo modulo. La documentazione su questa funzionalità è disponibile nel riferimento per sviluppatori:

Implementazione

Non è richiesta alcuna implementazione sul lato Camera HAL perché questa funzionalità è sia implementato sul lato del framework.

Convalida

La tua implementazione deve superare le richieste CTS che coprono questa funzionalità dal MultiViewTest e il libreria JNI nativa per l'API nativa.