Camera_module — odniesienie do struktury

Camera_module — odniesienie do struktury

#include < camera_common.h >

Pola danych

hw_module_t wspólny
int(* get_number_of_cameras )(void)
int(* get_camera_info )(int kamera_id, struktura Camera_info *info)
int(* set_callbacks )(const kamera_module_callbacks_t *callbacks)
próżnia(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
int(* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
int(* set_torch_mode ) (const char *camera_id, bool włączone)
int(* w tym )()
próżnia * zarezerwowane [5]

szczegółowy opis

Definicja w linii 646 pliku kamera_common.h .

Dokumentacja terenowa

hw_module_t wspólny

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

Wartości zwracane przez common.methods->open dla modułu_kamery 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: Kamera została już otwarta dla tego identyfikatora kamery (przy użyciu tej metody lub open_legacy), niezależnie od wersji HAL urządzenia, w jakiej została otwarta.

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

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

Definicja w linii 674 pliku kamera_common.h .

int(* get_camera_info)(int identyfikator_kamery, struktura informacji o kamerze *info)

get_camera_info:

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

Zwracane wartości:

0: Po pomyślnej 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 modułu_kamery_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 lub nowsza:

Po odłączeniu kamery jej identyfikator staje się nieprawidłowy. Wywołanie tej metody z nieprawidłowym identyfikatorem kamery spowoduje otrzymanie statycznych metadanych kamery -EINVAL i NULL ( camera_info.static_camera_characteristics ).

Definicja w linii 727 pliku kamera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras:

Zwraca liczbę urządzeń kamer dostępnych za pośrednictwem modułu kamery. Urządzenia z kamerami są ponumerowane od 0 do N-1, gdzie N jest wartością zwróconą przez to wywołanie. Nazwa urządzenia z kamerą dla funkcji open() to po prostu liczba przekonwertowana na ciąg znaków. Oznacza to, że „0” dla identyfikatora kamery 0, „1” dla identyfikatora kamery 1.

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 lub niższa:

Wartość w tym miejscu musi być statyczna i nie może się zmienić po pierwszym wywołaniu tej metody.

CAMERA_MODULE_API_VERSION_2_4 lub nowsza:

Wartość w tym miejscu musi być statyczna i musi uwzględniać tylko wbudowane kamery, które mają wartości skierowania 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 linii 701 pliku kamera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Uzyskaj metody wysyłania zapytań o informacje o znacznikach metadanych rozszerzenia dostawcy. HAL powinna wypełnić wszystkie metody działania tagów dostawcy lub pozostawić operacje bez zmian, jeśli nie zdefiniowano żadnych tagów dostawcy.

Wykorzystana tutaj strukturavendor_tag_ops jest zdefiniowana w: system/media/camera/include/system/vendor_tags.h

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Nie zapewniane przez moduł HAL. Framework może nie wywoływać tej funkcji.

CAMERA_MODULE_API_VERSION_2_2: Prawidłowe wywoływanie przez platformę.

Definicja w linii 778 pliku kamera_common.h .

int(* init)()

w tym:

Ta metoda jest wywoływana przez usługę kamery przed wywołaniem jakichkolwiek innych metod, zaraz po pomyślnym załadowaniu biblioteki HAL kamery. Moduł HAL może pozostawić wartość NULL, jeśli nie jest wymagana inicjalizacja.

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

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

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

CAMERA_MODULE_API_VERSION_2_4: Jeśli nie ma wartości NULL, będzie zawsze wywoływane przez platformę raz po załadowaniu modułu HAL, zanim zostanie wywołana jakakolwiek inna metoda modułu HAL.

Zwracane wartości:

0: Po pomyślnej operacji.

-ENODEV: Nie można ukończyć inicjalizacji z powodu błędu wewnętrznego. Należy założyć, że warstwa HAL jest w stanie niefunkcjonalnym.

Definicja w linii 909 pliku kamera_common.h .

int(* open_legacy)(const struktura hw_module_t *moduł, const char *id, uint32_t halVersion, struktura hw_device_t **urządzenie)

open_legacy:

Otwórz określone urządzenie HAL starszej kamery, jeśli moduł HAL tej kamery obsługuje wiele wersji interfejsu HAL API urządzenia. Na przykład, jeśli moduł kamery obsługuje interfejs API urządzenia CAMERA_DEVICE_API_VERSION_1_0 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ł Camera HAL nie musi obsługiwać więcej niż jednej wersji HAL urządzenia na urządzenie, a 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 użyje normalnej metody open() (common.methods->open).

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

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

CAMERA_MODULE_API_VERSION_2_3: Prawidłowe wywoływanie przez platformę.

Zwracane wartości:

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

-ENOSYS Ta metoda nie jest obsługiwana.

-EOPNOTSUPP: Żądana wersja 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: Kamera została już otwarta dla tego identyfikatora kamery (przy użyciu tej metody lub metody common.methods->open), niezależnie od wersji HAL urządzenia, w jakiej została otwarta.

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

Definicja w linii 824 pliku kamera_common.h .

nieważne* zarezerwowane[5]

Definicja w linii 912 pliku kamera_common.h .

int(* set_callbacks)(const kamera_module_callbacks_t *callbacks)

set_callbacks:

Udostępnij wskaźniki funkcji wywołania zwrotnego do modułu HAL, aby informować strukturę o zdarzeniach asynchronicznego modułu kamery. Framework wywoła tę funkcję raz po pierwszym załadowaniu modułu HAL kamery, po pierwszym wywołaniu metody get_number_of_cameras() i przed jakimkolwiek innym wywołaniem modułu.

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Nie zapewniane przez moduł HAL. Framework może nie wywoływać tej funkcji.

CAMERA_MODULE_API_VERSION_2_1:

Prawidłowe wywoływanie przez platformę.

Zwracane wartości:

0: Po pomyślnej operacji

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

-EINVAL: Argumenty wejściowe są nieprawidłowe, tzn. wywołania zwrotne mają wartość null

Definicja w linii 758 pliku kamera_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 identyfikatorem aparatu. Jeśli operacja się powiedzie, HAL musi powiadomić strukturę palnika, wywołując funkcję Camera_module_callbacks.torch_mode_status_change() z nowym stanem.

Aparat ma wyższy priorytet w dostępie do lampy błyskowej. W przypadku wystąpienia konfliktów zasobów, np. wywołania metody open() w celu otwarcia urządzenia z kamerą, moduł HAL musi powiadomić platformę za pośrednictwem kamery_module_callbacks.torch_mode_status_change() , że tryb latarki został wyłączony, a stan trybu latarki zmienił się na TORCH_MODE_STATUS_NOT_AVAILABLE. Gdy zasoby umożliwiające włączenie trybu latarki staną się ponownie dostępne, moduł HAL musi powiadomić platformę za pomocą kamery_module_callbacks.torch_mode_status_change() , że stan trybu latarki zmienił się na TORCH_MODE_STATUS_AVAILABLE_OFF, aby funkcja set_torch_mode() mogła zostać wywołana.

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

Informacje o wersji (na podstawie modułu_kamery_t.common.module_api_version):

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

CAMERA_MODULE_API_VERSION_2_4: Prawidłowe wywoływanie przez platformę.

Zwracane wartości:

0: Po pomyślnej operacji.

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

-EBUSY: Kamera jest już używana.

-EUSERS: Zasoby potrzebne do włączenia trybu latarki są niedostępne, zazwyczaj dlatego, że inne aparaty przechowują zasoby, co uniemożliwia korzystanie z lampy błyskowej.

-EINVAL: identyfikator_kamery jest nieprawidłowy.

Definicja w linii 878 pliku kamera_common.h .


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