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

camera_module — odniesienie do struktury

camera_module — odniesienie do struktury

#include < camera_common.h >

Pola danych

hw_module_t wspólny
int(* pobierz_liczbę_kamer )(unieważnij)
int(* get_camera_info )(int camera_id, struct camera_info *info)
int(* set_callbacks )(const camera_module_callbacks_t *callbacks)
próżnia(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
int(* open_legacy )(const struct hw_module_t *moduł, const char *id, uint32_t halVersion, struct hw_device_t **urządzenie)
int(* set_torch_mode )(const char *camera_id, bool włączone)
int(* początek )()
próżnia * zarezerwowane [5]

szczegółowy opis

Definicja w wierszu 646 pliku camera_common.h .

Dokumentacja terenowa

hw_module_t wspólny

Popularne metody modułu kamery. Musi to być pierwszy element członkowski camera_module , ponieważ użytkownicy tej struktury będą rzutować hw_module_t na wskaźnik camera_module w kontekstach, w których wiadomo, że hw_module_t odwołuje się do camera_module .

Zwracane wartości dla common.methods->open dla camera_module to:

0: Po pomyślnym otwarciu urządzenia z kamerą.

-ENODEV: Nie można otworzyć aparatu z powodu błędu wewnętrznego.

-EINVAL: Argumenty wejściowe są nieprawidłowe, tj. identyfikator jest nieprawidłowy i/lub moduł jest nieprawidłowy.

-EBUSY: Urządzenie z kamerą zostało już otwarte dla tego identyfikatora kamery (przy użyciu tej metody lub open_legacy), niezależnie od wersji HAL urządzenia, w której zostało otwarte.

-EUSERS: Maksymalna liczba urządzeń z kamerami, które mogą być otwarte jednocześnie, została już otwarta za pomocą tej metody lub metody open_legacy.

Wszystkie inne wartości zwracane z common.methods->open będą traktowane jako -ENODEV.

Definicja w wierszu 674 pliku camera_common.h .

int(* get_camera_info)(int camera_id, struct camera_info *info)

get_camera_info:

Zwróć statyczne informacje o kamerze dla danego urządzenia z kamerą. Te informacje mogą nie ulec zmianie w przypadku aparatu fotograficznego.

Zwracane wartości:

0: Po udanej operacji

-ENODEV: Nie można podać informacji z powodu błędu wewnętrznego.

-EINVAL: Argumenty wejściowe są nieprawidłowe, tj. identyfikator jest nieprawidłowy i/lub moduł jest nieprawidłowy.

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 lub nowszy:

Gdy kamera jest odłączona, jej identyfikator staje się nieprawidłowy. Wywołanie tej metody z tym nieprawidłowym identyfikatorem kamery spowoduje otrzymanie -EINVAL i NULL metadanych statycznych kamery ( camera_info.static_camera_characteristics ).

Definicja w wierszu 727 pliku camera_common.h .

int(* pobierz_liczbę_kamer)(nieważne)

get_number_of_cameras:

Zwraca liczbę urządzeń z kamerami dostępnych przez moduł kamery. Kamery są ponumerowane od 0 do N-1, gdzie N jest wartością zwracaną przez to wywołanie. Nazwa aparatu fotograficznego dla funkcji open() to po prostu liczba przekonwertowana na ciąg. Oznacza to, że „0” dla identyfikatora kamery 0, „1” dla identyfikatora kamery 1.

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 lub mniej:

Wartość tutaj musi być statyczna i nie może ulec zmianie po pierwszym wywołaniu tej metody.

CAMERA_MODULE_API_VERSION_2_4 lub nowszy:

Wartość tutaj musi być statyczna i musi uwzględniać tylko wbudowane kamery, które mają wartości skierowane do kamery CAMERA_FACING_BACK lub CAMERA_FACING_FRONT ( camera_info.facing ). HAL nie może uwzględniać kamer zewnętrznych ( camera_info.facing == CAMERA_FACING_EXTERNAL) w wartości zwracanej tego wywołania. Frameworki będą używać wywołania zwrotnego camera_device_status_change do zarządzania liczbą kamer zewnętrznych.

Definicja w wierszu 701 pliku camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Uzyskaj metody wyszukiwania informacji o tagach metadanych rozszerzenia dostawcy. HAL powinien wypełnić wszystkie metody działania tagów dostawcy lub pozostawić operacje bez zmian, jeśli nie zdefiniowano tagów dostawcy.

Użyta tutaj struktura vendor_tag_ops jest zdefiniowana w: system/media/camera/include/system/vendor_tags.h

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Nie zapewnia modułu HAL. Framework może nie wywołać tej funkcji.

CAMERA_MODULE_API_VERSION_2_2: Prawidłowe do wywoływania przez platformę.

Definicja w wierszu 778 pliku camera_common.h .

int(* początek)()

w tym:

Ta metoda jest wywoływana przez usługę aparatu przed wywołaniem jakichkolwiek innych metod, zaraz po pomyślnym załadowaniu biblioteki HAL aparatu. Może zostać pozostawiony jako NULL przez moduł HAL, jeśli inicjalizacja nie jest wymagana.

Może być używany przez implementacje HAL do wykonywania inicjalizacji i innych jednorazowych operacji.

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Nie zapewnia modułu HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_4: Jeśli wartość nie ma wartości NULL, będzie zawsze wywoływana przez platformę raz po załadowaniu modułu HAL, przed wywołaniem jakiejkolwiek innej metody modułu HAL.

Zwracane wartości:

0: Po udanej operacji.

-ENODEV: Inicjowanie nie może zostać zakończone z powodu błędu wewnętrznego. Należy założyć, że warstwa HAL jest w stanie niefunkcjonalnym.

Definicja w wierszu 909 pliku camera_common.h .

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **urządzenie)

open_legacy:

Otwórz określone starsze urządzenie HAL kamery, jeśli ten moduł HAL kamery obsługuje wiele wersji interfejsu API HAL urządzenia. Na przykład, jeśli moduł kamery obsługuje zarówno interfejs API urządzenia CAMERA_DEVICE_API_VERSION_1_0, jak i CAMERA_DEVICE_API_VERSION_3_2 dla tego samego identyfikatora kamery, platforma może wywołać tę funkcję, aby otworzyć urządzenie kamery jako urządzenie CAMERA_DEVICE_API_VERSION_1_0.

Jest to metoda opcjonalna. Moduł kamery HAL nie musi obsługiwać więcej niż jednej wersji HAL urządzenia na urządzenie i takie moduły mogą zwracać -ENOSYS dla wszystkich wywołań tej metody. W przypadku wszystkich starszych wersji interfejsu API urządzenia HAL, które nie są obsługiwane, może zwrócić -EOPNOTSUPP. Gdy wystąpią powyższe przypadki, zamiast tego framework zostanie użyta metoda normalna open() (common.methods->open).

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: Nie zapewnia modułu HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_3: Prawidłowe do wywoływania przez platformę.

Zwracane wartości:

0: Po pomyślnym otwarciu urządzenia z kamerą.

-ENOSYS Ta metoda nie jest obsługiwana.

-EOPNOTSUPP: Żądana wersja warstwy HAL nie jest obsługiwana przez tę metodę.

-EINVAL: Argumenty wejściowe są nieprawidłowe, tj. identyfikator jest nieprawidłowy i/lub moduł jest nieprawidłowy.

-EBUSY: Urządzenie z kamerą zostało już otwarte dla tego identyfikatora kamery (przy użyciu tej metody lub metody common.methods->open), niezależnie od wersji HAL urządzenia, w której zostało otwarte.

-EUSERS: Maksymalna liczba urządzeń z kamerami, które można otworzyć jednocześnie, została już otwarta tą metodą lub metodą common.methods->open.

Definicja w wierszu 824 pliku camera_common.h .

nieważne* zarezerwowane[5]

Definicja w wierszu 912 pliku camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Podaj wskaźniki funkcji wywołania zwrotnego do modułu HAL, aby informować strukturę o zdarzeniach modułu asynchronicznej kamery. Struktura wywoła tę funkcję raz po początkowym załadowaniu modułu HAL kamery, po pierwszym wywołaniu metody get_number_of_cameras() i przed innymi wywołaniami modułu.

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Nie zapewnia modułu HAL. Framework może nie wywołać tej funkcji.

CAMERA_MODULE_API_VERSION_2_1:

Prawidłowe do wywołania przez platformę.

Zwracane wartości:

0: Po udanej operacji

-ENODEV: Operacja nie może zostać zakończona z powodu błędu wewnętrznego.

-EINVAL: Argumenty wejściowe są nieprawidłowe, tj. wywołania zwrotne są puste

Definicja w wierszu 758 pliku camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool włączone)

set_torch_mode:

Włącz lub wyłącz tryb latarki lampy błyskowej powiązanej z danym ID aparatu. Jeśli operacja się powiedzie, HAL musi powiadomić o stanie palnika struktury, wywołując camera_module_callbacks.torch_mode_status_change() z nowym stanem.

Aparat fotograficzny ma wyższy priorytet dostępu do lampy błyskowej. W przypadku jakichkolwiek konfliktów zasobów, takich jak wywołanie open() w celu otwarcia urządzenia kamery, moduł HAL musi powiadomić platformę za pośrednictwem camera_module_callbacks.torch_mode_status_change() , że tryb palnika został wyłączony, a stan trybu palnika zmienił się na TORCH_MODE_STATUS_NOT_AVAILABLE. Gdy zasoby umożliwiające włączenie trybu palnika staną się ponownie dostępne, moduł HAL musi powiadomić platformę za pośrednictwem camera_module_callbacks.torch_mode_status_change() , że stan trybu palnika zmienił się na TORCH_MODE_STATUS_AVAILABLE_OFF, aby można było wywołać metodę set_torch_mode() .

Gdy platforma wywołuje set_torch_mode() w celu włączenia trybu latarki lampy błyskowej, jeśli HAL nie może jednocześnie utrzymać wielu trybów latarki, HAL powinien wyłączyć tryb latarki, który został włączony przez poprzednie wywołanie set_torch_mode() i powiadomić platformę że stan trybu latarki tej lampy błyskowej zmienił się na TORCH_MODE_STATUS_AVAILABLE_OFF.

Informacje o wersji (na podstawie camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Nie zapewnia modułu HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_4: Prawidłowe do wywoływania przez platformę.

Zwracane wartości:

0: Po udanej operacji.

-ENOSYS: Kamera nie obsługuje tej operacji. Jest zwracany wtedy i tylko wtedy, gdy android.flash.info.available ma wartość false.

-EBUSY: Urządzenie z kamerą jest już w użyciu.

-EUERS: Zasoby potrzebne do włączenia trybu latarki nie są dostępne, zazwyczaj dlatego, że inne aparaty posiadają zasoby uniemożliwiające korzystanie z lampy błyskowej.

-EINVAL: identyfikator aparatu jest nieprawidłowy.

Definicja w wierszu 878 pliku camera_common.h .


Dokumentacja dla tej struktury została wygenerowana z następującego pliku: