Producteur unique, transport de la mémoire tampon de plusieurs appareils photo

Cette fonctionnalité introduit un ensemble de méthodes permettant aux clients d'un appareil photo d'ajouter et supprimer dynamiquement les surfaces de sortie lorsque la session de capture est active et la diffusion du flux de la caméra est en cours. Un nouveau résultat peut correspondre à une sortie spécifique caméra partagée flux. Une fois la surface ajoutée, vous pouvez la retirer à tout moment.

L'idée générale est de partager les tampons associés à une caméra spécifique dans plusieurs surfaces de sortie. Un compteur de références interne assure le suivi des tampons lorsqu'ils sont prêts pour un traitement ultérieur côté consommateur. Lorsque tous les clients terminent leurs tâches respectives, le tampon est retiré de la file d'attente et est disponible pour l'appareil photo.

Partage de tampon

Figure 1 : Partage de tampon

La figure 1 illustre un exemple de scénario dans lequel les tampons sont traités par l'appareil photo. flux 2 sont associés et dissociés de manière dynamique, sont comptés par référence et gérés par le composant répartiteur de flux à l'intérieur d'un flux de sortie partagé dédié le service de caméra.

Exemples et source

La mise en œuvre principale de cette fonctionnalité est indiquée dans le Camera3StreamSplitter de ce module. La documentation sur cette fonctionnalité est disponible dans la documentation de référence destinée aux développeurs:

Implémentation

Aucune implémentation n'est requise du côté de la couche d'abstraction de la caméra, car cette fonctionnalité est implémentées côté framework.

Validation

Votre implémentation doit réussir les demandes CTS qui couvrent cette fonctionnalité à partir du Test MultiView et le module bibliothèque JNI native pour l'API native.