Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Odniesienie do struktury camera3_stream

Odniesienie do struktury camera3_stream

#include < camera3.h >

Pola danych

int typ_strumienia
uint32_t szerokość
uint32_t wzrost
int format
uint32_t stosowanie
uint32_t max_bufory
próżnia * prywatny
android_dataspace_t data_space
int obrót
próżnia * zarezerwowane [7]

szczegółowy opis

kamera3_stream_t:

Uchwyt do pojedynczego strumienia wejściowego lub wyjściowego kamery. Strumień jest definiowany przez platformę 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 camera3_stream przekazane do warstwy HAL przez configure_streams() są ważne do końca pierwszego kolejnego wywołania configure_streams(), które nie zawiera tej kamery3_stream jako argumentu, lub do końca wywołanie close().

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

Jeśli wywołanie configure_streams() zwróci błąd niekrytyczny, wszystkie aktywne strumienie pozostają ważne, tak jakby nie wywołano configure_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 przez konsumentów w strumieniach, w których kamera jest producentem (typy strumieni WYJŚCIOWY i DWUKIERUNKOWY) — zobacz pole użycia poniżej.

Definicja w wierszu 1523 pliku camera3.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 strumieniowych, 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 o formatach i poprawnych wartościach dataSpace dla każdego formatu.

Informacje o wersji:

< CAMERA_DEVICE_API_VERSION_3_3:

Nie zdefiniowany i nie należy do niego uzyskiwać dostępu. Należy przyjąć, że dataSpace ma wartość HAL_DATASPACE_UNKNOWN, a odpowiednią przestrzeń kolorów itp. należy określić na podstawie flag użytkowania i formatu.

= CAMERA_DEVICE_API_VERSION_3_3:

Zawsze ustawiane przez serwis aparatu. HAL musi korzystać z tej przestrzeni danych, aby skonfigurować strumień do prawidłowej przestrzeni kolorów lub wybrać między kolorami i głębią, jeśli są obsługiwane. Wartości przestrzeni danych to starsze definicje w graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Zawsze ustawiane przez serwis aparatu. HAL musi korzystać z tej przestrzeni danych, aby skonfigurować strumień do prawidłowej przestrzeni kolorów lub wybrać między kolorami i głębią, jeśli są obsługiwane. Wartości przestrzeni danych są ustawiane przy użyciu definicji przestrzeni danych V0 w graphics.h

Definicja w wierszu 1648 pliku camera3.h .

format wewnętrzny

Format pikseli dla 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 używany jest HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, moduł gralloc platformy wybierze format na podstawie flag użycia dostarczonych przez urządzenie kamery i inny punkt końcowy strumienia.

<= CAMERA_DEVICE_API_VERSION_3_1:

Urządzenie HAL kamery musi sprawdzić bufory przekazane do niego w kolejnym wywołaniu register_stream_buffers(), aby w razie potrzeby uzyskać szczegóły formatu specyficzne dla implementacji.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() nie będzie wywoływana przez platformę, więc warstwa HAL powinna skonfigurować dostawcę usług internetowych i potok czujnika wyłącznie na podstawie rozmiarów, flag użycia i formatów skonfigurowanych strumieni.

Definicja w wierszu 1565 pliku camera3.h .

wysokość uint32_t

Wysokość buforów w tym strumieniu w pikselach

Definicja w wierszu 1542 pliku camera3.h .

uint32_t max_buffers

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

Definicja w wierszu 1608 pliku camera3.h .

nieważne* prywatne

Uchwyt do informacji prywatnych HAL dla strumienia. Nie będą sprawdzane przez kod frameworka.

Definicja w wierszu 1614 pliku camera3.h .

nieważne* zarezerwowane[7]

Definicja w wierszu 1677 pliku camera3.h .

rotacja wewnętrzna

Wymagana rotacja wyjściowa strumienia, jedna z wartości camera3_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 to odpowiednio 720 i 1280, usługa kamery dostarczy bufory o rozmiarze 720x1280, a HAL powinien przechwycić obraz 1280x720 i obrócić obraz o 90 stopni w kierunku przeciwnym do ruchu wskazówek zegara. Pole rotacji nie działa, gdy wprowadzany jest typ strumienia. Kamera HAL musi ignorować pole obrotu dla strumienia wejściowego.

<= CAMERA_DEVICE_API_VERSION_3_2:

Nie zdefiniowany i nie można do niego uzyskać dostępu. HAL nie może obracać 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 configure_streams() nie może zakończyć się niepowodzeniem w przypadku nieobsługiwanej rotacji, jeśli pole rotacji wszystkich strumieni to CAMERA3_STREAM_ROTATION_0.

Definicja w wierszu 1674 pliku camera3.h .

int typ_strumienia

Typ strumienia, jedna z wartości camera3_stream_type_t.

Definicja w linii 1532 pliku camera3.h .

użycie uint32_t

Flagi użycia gralloc dla tego strumienia, zgodnie z wymaganiami 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 przez klienta warstwy HAL. Flagi użycia od producenta i konsumenta zostaną połączone, a następnie przekazane do modułu platformy gralloc HAL w celu przydzielenia buforów gralloc dla każdego strumienia.

Informacje o wersji:

== CAMERA_DEVICE_API_VERSION_3_0:

Brak gwarancji wartości początkowej przy przekazywaniu przez configure_streams(). HAL nie może używać tego pola jako danych wejściowych i musi nadpisać to pole z jego flagami użycia.

>= CAMERA_DEVICE_API_VERSION_3_1:

Dla stream_type OUTPUT i BIDIRECTIONAL, po przekazaniu przez configure_streams(), początkową wartością tego są flagi użytkowania konsumenta. HAL może używać tych flag konsumenta do decydowania o konfiguracji strumienia. Dla stream_type INPUT, gdy jest on przekazywany przez configure_streams(), początkowa wartość tego wynosi 0. Dla wszystkich strumieni przekazywanych przez configure_streams(), warstwa HAL musi nadpisywać to pole z jego flagami użycia.

Definicja w wierszu 1601 pliku camera3.h .

szerokość uint32_t

Szerokość buforów w tym strumieniu w pikselach

Definicja w wierszu 1537 pliku camera3.h .


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