Camera3_stream — odniesienie do struktury

Camera3_stream — odniesienie do struktury

#include < camera3.h >

Pola danych

wew typ_strumienia
uint32_t szerokość
uint32_t wysokość
wew format
uint32_t stosowanie
uint32_t max_bufory
próżnia * prywatny
android_dataspace_t przestrzeń_danych
wew obrót
próżnia * zarezerwowane [7]

szczegółowy opis

kamera3_stream_t:

Uchwyt do strumienia wejściowego lub wyjściowego pojedynczej kamery. Strumień jest definiowany przez framework na podstawie rozdzielczości i formatu bufora, a dodatkowo przez warstwę HAL z flagami użycia gralloc i maksymalną liczbą buforów w locie.

Struktury strumieni są własnością frameworka, ale wskaźniki do strumienia kamery3_stream przekazywane do warstwy HAL przez funkcję konfiguracji_streams() obowiązują do końca pierwszego kolejnego wywołania konfiguracji_streams(), które nie zawiera tego strumienia kamery3_stream jako argumentu, lub do końca wywołanie zamknięcia().

Wszystkie elementy kontrolowane przez platformę Camera3_stream są niezmienne po przekazaniu strumienia Camera3_stream do konfiguracji_streams(). HAL może zmieniać parametry kontrolowane przez HAL tylko podczas wywołania konfiguracji_streams(), z wyjątkiem zawartości prywatnego wskaźnika.

Jeśli wywołanie konfiguracji_streams() zwróci błąd niekrytyczny, wszystkie aktywne strumienie pozostaną ważne, tak jakby nie została wywołana funkcjaconfigure_streams().

Punkt końcowy strumienia nie jest widoczny dla urządzenia HAL kamery. W DEVICE_API_VERSION_3_1 zmieniono to, aby udostępniać flagi użytkowania konsumenckiego w strumieniach, których producentem jest kamera (typy strumieni OUTPUT i BIDIRECTIONAL), patrz pole użycia poniżej.

Definicja w linii 1523 pliku kamera3.h .

Dokumentacja terenowa

android_dataspace_t data_space

Pole opisujące zawartość bufora. Format i wymiary bufora definiują układ pamięci i strukturę buforów strumienia, podczas gdy dataSpace definiuje znaczenie danych w buforze.

W przypadku większości formatów dataSpace definiuje przestrzeń kolorów danych obrazu. Ponadto w przypadku niektórych formatów dataSpace wskazuje, czy wymagane są dane oparte na obrazie, czy na głębokości. Zobacz system/core/include/system/graphics.h, aby uzyskać szczegółowe informacje na temat formatów i prawidłowych wartości dataSpace dla każdego formatu.

Informacje o wersji:

< CAMERA_DEVICE_API_VERSION_3_3:

Niezdefiniowany i nie powinien być dostępny. Należy przyjąć, że dataSpace to HAL_DATASPACE_UNKNOWN, a odpowiednią przestrzeń kolorów itp. należy określić na podstawie flag użycia i formatu.

= CAMERA_DEVICE_API_VERSION_3_3:

Zawsze ustawiane przez serwis aparatu. HAL musi używać tej przestrzeni danych, aby skonfigurować strumień do właściwej przestrzeni kolorów lub wybrać pomiędzy kolorem i głębią, jeśli jest obsługiwana. Wartości przestrzeni danych to starsze definicje w Graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Zawsze ustawiane przez serwis aparatu. HAL musi używać tej przestrzeni danych, aby skonfigurować strumień do właściwej przestrzeni kolorów lub wybrać pomiędzy kolorem i głębią, jeśli jest obsługiwana. Wartości przestrzeni danych są ustawiane przy użyciu definicji przestrzeni danych V0 w Graphics.h

Definicja w linii 1648 pliku kamera3.h .

formacie int

Format pikseli buforów w tym strumieniu. Format to wartość z listy HAL_PIXEL_FORMAT_* w pliku system/core/include/system/graphics.h lub z nagłówków specyficznych dla urządzenia.

Jeśli zostanie użyty HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, moduł gralloc platformy wybierze format w oparciu o flagi użytkowania dostarczone przez kamerę i drugi punkt końcowy strumienia.

<= CAMERA_DEVICE_API_VERSION_3_1:

Urządzenie HAL kamery musi sprawdzić bufory przekazane mu w kolejnym wywołaniu funkcji Register_stream_buffers(), aby w razie potrzeby uzyskać szczegółowe informacje na temat formatu specyficznego dla implementacji.

>= CAMERA_DEVICE_API_VERSION_3_2:

funkcja Register_stream_buffers() nie zostanie wywołana przez platformę, więc warstwa HAL powinna skonfigurować potok dostawcy usług internetowych i czujnika wyłącznie w oparciu o rozmiary, flagi użycia i formaty skonfigurowanych strumieni.

Definicja w linii 1565 pliku kamera3.h .

wysokość uint32_t

Wysokość w pikselach buforów w tym strumieniu

Definicja w linii 1542 pliku kamera3.h .

uint32_t max_buffers

Maksymalna liczba buforów, które urządzenie HAL może potrzebować usunąć z kolejki w tym samym czasie. Urządzenie HAL nie może mieć więcej buforów przesyłanych z tego strumienia niż ta wartość.

Definicja w linii 1608 pliku kamera3.h .

nieważne* prywatne

Dojście do prywatnych informacji HAL dla strumienia. Nie będzie sprawdzany przez kod frameworka.

Definicja w linii 1614 pliku kamera3.h .

nieważne* zarezerwowane[7]

Definicja w linii 1677 pliku kamera3.h .

obrót wewnętrzny

Wymagana rotacja wyjściowa strumienia, jedna z wartości kamery3_stream_rotation_t. Musi to zostać sprawdzone przez HAL wraz z szerokością i wysokością strumienia. Na przykład, jeśli obrót wynosi 90 stopni, a szerokość i wysokość strumienia wynoszą odpowiednio 720 i 1280, usługa kamery dostarczy bufory o rozmiarze 720x1280, a HAL powinien przechwycić obraz o rozdzielczości 1280x720 i obrócić obraz o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara. Pole rotacji nie działa po wprowadzeniu typu strumienia. Kamera HAL musi ignorować pole obrotu dla strumienia wejściowego.

<= CAMERA_DEVICE_API_VERSION_3_2:

Niezdefiniowany i nie można uzyskać do niego dostępu. HAL nie może stosować żadnego obrotu obrazów wyjściowych.

>= CAMERA_DEVICE_API_VERSION_3_3:

Zawsze ustawiane przez serwis aparatu. HAL musi sprawdzić to pole podczas konfiguracji strumienia i zwraca -EINVAL, jeśli HAL nie może wykonać takiej rotacji. HAL musi zawsze obsługiwać CAMERA3_STREAM_ROTATION_0, więc wywołanie konfiguracji_streams() nie może zakończyć się niepowodzeniem w przypadku nieobsługiwanej rotacji, jeśli pole obrotu wszystkich strumieni to CAMERA3_STREAM_ROTATION_0.

Definicja w linii 1674 pliku kamera3.h .

int typ_strumienia

Typ strumienia, jedna z wartości kamery3_stream_type_t.

Definicja w linii 1532 pliku kamera3.h .

użycie uint32_t

Flagi użycia gralloc dla tego strumienia, zgodnie z potrzebami warstwy HAL. Flagi użycia są zdefiniowane w gralloc.h (GRALLOC_USAGE_*) lub w nagłówkach specyficznych dla urządzenia.

W przypadku strumieni wyjściowych są to flagi użycia producenta warstwy HAL. W przypadku strumieni wejściowych są to flagi użytkowania konsumenckiego warstwy HAL. Flagi użycia od producenta i konsumenta zostaną połączone razem, a następnie przekazane do modułu HAL platformy gralloc w celu przydzielenia buforów gralloc dla każdego strumienia.

Informacje o wersji:

== CAMERA_DEVICE_API_VERSION_3_0:

Żadna wartość początkowa nie jest gwarantowana przy przekazywaniu za pomocą konfiguracji_streams(). HAL nie może używać tego pola jako danych wejściowych i musi nad nim zapisywać swoje flagi użycia.

>= CAMERA_DEVICE_API_VERSION_3_1:

Dla typu stream_type OUTPUT i BIDIRECTIONAL, gdy są przekazywane za pomocą konfiguracji_streams(), wartością początkową są flagi użytkowania konsumenta. HAL może używać tych flag konsumenckich do decydowania o konfiguracji strumienia. Dla WEJŚCIA typu stream_type, przekazywanego za pomocą konfiguracji_streams(), wartość początkowa wynosi 0. W przypadku wszystkich strumieni przekazywanych za pomocą konfiguracji_streams() warstwa HAL musi zapisywać to pole ze swoimi flagami użycia.

Definicja w linii 1601 pliku kamera3.h .

szerokość uint32_t

Szerokość w pikselach buforów w tym strumieniu

Definicja w linii 1537 pliku kamera3.h .


Dokumentacja tej struktury została wygenerowana z następującego pliku:
  • hardware/libhardware/include/hardware/ camera3.h