Odwołanie do struktury camera3_stream

Odwołania do struktury camera3_stream

#include < camera3.h >

Pola danych

int  stream_type
 
uint32_t  szerokość
 
uint32_t  height
 
int  format
 
uint32_t  usage
 
uint32_t  max_buffers
 
void *  priv
 
android_dataspace_t  data_space
 
int  obrót
 
void *  reserved [7]
 

Szczegółowy opis

camera3_stream_t:

uchwyt do strumienia wejściowego lub wyjściowego pojedynczej kamery; Strumień jest definiowany przez ramkę za pomocą rozdzielczości i formatu bufora, a dodatkowo przez HAL z flagami użycia gralloc i maksymalną liczbą buforów w transmisji.

Struktury strumieni należą do frameworka, ale wskaźniki do camera3_stream przekazywane do HAL przez funkcję configure_streams() są ważne do końca pierwszego kolejnego wywołania funkcji configure_streams(), które nie zawiera tego camera3_stream jako argumentu lub do końca wywołania funkcji close().

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

Jeśli wywołanie funkcji configure_streams() zwraca błąd niekrytyczny, wszystkie aktywne strumienie pozostają ważne, tak jakby nie zostało wywołane configure_streams().

Punkt końcowy strumienia nie jest widoczny dla urządzenia HAL aparatu. W wersji DEVICE_API_VERSION_3_1 zmieniono to, aby udostępniać flagi użytkowania przez konsumenta w przypadku strumieni, w których kamera jest producentem (typy strumieni OUTPUT i BIDIRECTIONAL). Zobacz pole „usage” poniżej.

Definicja w wierszu 1523 pliku camera3.h .

Dokumentacja pola

android_dataspace_t data_space

Pole opisujące zawartość bufora. Wymiary formatu i bufora definiują układ i strukturę pamięci buforów strumienia, a wymiar dataSpace określa znaczenie danych w buforze.

W przypadku większości formatów przestrzeń danych określa przestrzeń barw danych obrazu. W przypadku niektórych formatów dataSpace wskazuje, czy żądane są dane oparte na obrazie czy głębi. Szczegółowe informacje o formatach i prawidłowych wartościach dataSpace dla każdego formatu znajdziesz w pliku system/core/include/system/graphics.h.

Informacje o wersji:

< CAMERA_DEVICE_API_VERSION_3_3:

Nie zdefiniowano i nie należy uzyskiwać do niego dostępu. Należy przyjąć, że dataSpace ma wartość HAL_DATASPACE_UNKNOWN, a odpowiednia przestrzeń kolorów itp. powinna być określana na podstawie flag użycia i formatu.

= CAMERA_DEVICE_API_VERSION_3_3:

Zawsze ustawiany przez usługę kamery. HAL musi używać tego dataSpace do konfigurowania strumienia w odpowiednim modelu kolorów lub do wyboru wyjścia koloru i głębi (jeśli jest obsługiwane). Wartości przestrzeni danych to starsze definicje w pliku graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Zawsze ustawiany przez usługę kamery. HAL musi używać tego dataSpace do konfigurowania strumienia pod kątem prawidłowej przestrzeni barw lub do wyboru wyjścia koloru i głębi (jeśli jest obsługiwane). Wartości przestrzeni danych są ustawiane za pomocą definicji przestrzeni danych V0 w pliku graphics.h

Definicja w wierszu 1648 w pliku camera3.h .

format int

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 związanych z danym urządzeniem.

Jeśli używana jest flaga HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, moduł gralloc platformy wybierze format na podstawie flag użycia dostarczonych przez urządzenie z kamerą i drugi punkt końcowy strumienia.

<= CAMERA_DEVICE_API_VERSION_3_1:

Urządzenie HAL aparatu musi sprawdzić bufory przekazane mu w kolejnych wywołaniach register_stream_buffers(), aby w razie potrzeby uzyskać szczegóły formatu specyficzne dla danej implementacji.

>= CAMERA_DEVICE_API_VERSION_3_2:

Framework nie wywoła funkcji register_stream_buffers(), więc HAL powinien skonfigurować ISP i przetwarzanie czujników wyłącznie na podstawie rozmiarów, flag użycia i formatów skonfigurowanych strumieni.

Definicja w wierszu 1565 pliku camera3.h .

uint32_t height

Wysokość buforów w tym strumieniu (w pikselach)

Definicja w wierszu 1542 w pliku camera3.h .

uint32_t max_buffers

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

Definicja w wierszu 1608 w pliku camera3.h .

void* priv

uchwyt do informacji prywatnych HAL dla strumienia. nie będzie sprawdzany przez kod platformy;

Definicja w wierszu 1614 pliku camera3.h .

void* reserved[7]

Definicja w wierszu 1677 w pliku camera3.h .

rotacja int

Wymagana rotacja wyjściowa strumienia, jedna z wartości camera3_stream_rotation_t. HAL musi sprawdzić te wartości wraz z szerokością i wysokością strumienia. Jeśli na przykład obrót wynosi 90°, a szerokość i wysokość strumienia to odpowiednio 720 i 1280, usługa aparatu dostarczy bufory o wymiarach 720 x 1280, a HAL powinien zarejestrować obraz o wymiarach 1280 x 720 i obrócić go o 90° w przeciwnym kierunku do ruchu wskazówek zegara. Pole rotacji jest nieaktywne, gdy typ strumienia to dane wejściowe. Interfejs HAL aparatu musi ignorować pole obrotu w przypadku strumienia wejściowego.

<= CAMERA_DEVICE_API_VERSION_3_2:

Nie zdefiniowany i niedostępny. HAL nie może stosować żadnego obrotu na wyjściowych obrazach.

>= CAMERA_DEVICE_API_VERSION_3_3:

Zawsze ustawiany przez usługę aparatu. HAL musi sprawdzić to pole podczas konfiguracji strumienia i zwraca -EINVAL, jeśli nie może wykonać takiej rotacji. HAL musi zawsze obsługiwać CAMERA3_STREAM_ROTATION_0, więc wywołanie configure_streams() nie może się zakończyć niepowodzeniem w przypadku nieobsługiwanego obracania, jeśli pole obracania wszystkich strumieni ma wartość CAMERA3_STREAM_ROTATION_0.

Definicja w wierszu 1674 pliku camera3.h .

int stream_type

Typ strumienia, jedna z wartości camera3_stream_type_t.

Definicja w wierszu 1532 pliku camera3.h .

Użycie typu uint32_t

Flagi gralloc używane w tym strumieniu, zgodnie z potrzebami HAL. Flagi użycia są zdefiniowane w pliku gralloc.h (GRALLOC_USAGE_*) lub w nagłówkach charakterystycznych dla danego urządzenia.

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

Informacje o wersji:

== CAMERA_DEVICE_API_VERSION_3_0:

Nie gwarantuje się żadnej wartości początkowej, gdy jest ona przekazywana za pomocą funkcji configure_streams(). HAL może nie używać tego pola jako wejścia i musi zastąpić to pole flagami użycia.

>= CAMERA_DEVICE_API_VERSION_3_1:

W przypadku wartości wyjściowej stream_type OUTPUT i BIDIRECTIONAL, gdy jest ona przekazywana za pomocą funkcji configure_streams(), jej początkowa wartość to flagi użycia konsumenta. HAL może używać tych flag konsumenta do określenia konfiguracji strumienia. W przypadku parametru stream_type INPUT, gdy jest on przekazywany za pomocą funkcji configure_streams(), jego początkowa wartość wynosi 0. W przypadku wszystkich strumieni przekazywanych za pomocą funkcji configure_streams() HAL musi zapisać w tym polu swoje flagi użycia.

Definicja w wierszu 1601 pliku camera3.h .

uint32_t width

Szerokość buforów w tym strumieniu (w pikselach)

Definicja w wierszu 1537 w pliku camera3.h .


Dokumentacja tego typu danych została wygenerowana z tego pliku: