Jeden producent, wiele buforów kamer konsumenta

Ta funkcja wprowadza zestaw metod, które pozwalają klientom aparatów dynamicznie dodawać i usuwać platformy wyjściowe, gdy sesja przechwytywania jest aktywna i transmisja z kamery jest w toku. 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 referencyjny ś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 z aparatu 2 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

Podstawową implementację tej funkcji znajdziesz 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ść przypadki CTS, które obejmują tę funkcję w module MultiViewTestnatywnej bibliotece JNI dla natywnego interfejsu API.