Ta funkcja wprowadza zestaw metod, które umożliwiają klientom aparatu dynamiczne dodawanie i usuwanie powierzchni wyjściowych podczas aktywnej sesji przechwytywania i trwającego przesyłania strumieniowego z aparatu. Nowe wyjście może być mapowane na konkretny, wybrany przez użytkownika strumień z kamery współdzielonej. Dodaną platformę możesz w każdej chwili usunąć.
Ogólna idea polega na udostępnianiu buforów powiązanych z określonym strumieniem z kamery na kilku powierzchniach wyjściowych. Wewnętrzny licznik odwołań śledzi bufory, gdy są one 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 aparatu.
Rysunek 1. Udostępnianie bufora
Ilustracja 1 przedstawia przykładowy scenariusz, w którym bufory przetwarzane przez strumień 2 kamery są dynamicznie dołączane i odłączane, zliczane i zarządzane przez komponent rozdzielacza strumieni w ramach dedykowanego udostępnionego strumienia wyjściowego w usłudze aparatu.
Przykłady i źródło
Główną implementację tej funkcji znajdziesz w module
Camera3StreamSplitter
. Dokumentację tej funkcji znajdziesz w dokumentacji dla deweloperów:
Implementacja
Po stronie HAL aparatu nie jest wymagana żadna implementacja, ponieważ ta funkcja jest implementowana po stronie platformy.
Weryfikacja
Implementacja musi przejść testy CTS, które obejmują tę funkcję z modułu MultiViewTest i natywnej biblioteki JNI dla natywnego interfejsu API.