Jeden producent, wiele buforów kamer konsumenta

Ta funkcja wprowadza zestaw metod, które umożliwiają klientom kamery dynamiczne dodawanie i usuwanie powierzchni wyjściowych podczas aktywnej sesji przechwytywania i trwającego strumieniowania z kamery. Nowe wyjście może być zmapowane na konkretny strumień udostępnionej kamery wybrany przez użytkownika. Po dodaniu powierzchni możesz ją usunąć w dowolnym momencie.

Ogólna idea polega na udostępnianiu buforów powiązanych z danym strumieniem kamery na kilku powierzchniach wyjściowych. Wewnętrzny licznik odwołań śledzi bufory, gdy są gotowe do dalszego przetwarzania po stronie klienta. Gdy wszyscy konsumenci wykonają swoje zadania, bufor zostanie usunięty z kolejki i będzie dostępny dla kamery.

Udostępnianie bufora

Rysunek 1. Udostępnianie bufora

Rysunek 1 przedstawia przykładowy scenariusz, w którym bufory przetwarzane przez strumień danych 2 z kamery są dynamicznie dołączane i odłączane, zliczane i zarządzane przez komponent rozdzielacza strumieni w ramach dedykowanego wspólnego strumienia wyjściowego w usłudze aparatu.

Przykłady i źródło

Podstawowe implementacje tej funkcji znajdują się w module Camera3StreamSplitter. Dokumentację na temat tej funkcji znajdziesz w dokumentacji dla deweloperów:

Implementacja

Nie trzeba implementować tej funkcji po stronie interfejsu HAL aparatu, ponieważ jest ona implementowana po stronie frameworka.

Weryfikacja

Twoja implementacja musi przejść testy CTS obejmujące tę funkcję z modułu MultiViewTestnatywnej biblioteki JNI dla natywnego interfejsu API.