Struktura camera_module

Struktura camera_module

#include < camera_common.h >

Pola danych

hw_module_t   wspólne
 
int(*  get_number_of_cameras )(void)
 
int(*  get_camera_info )(int camera_id, struct camera_info *info)
 
int(*  set_callbacks )(const camera_module_callbacks_t *callbacks)
 
void(*  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 enabled)
 
int(*  init )()
 
void *  reserved [5]
 

Szczegółowy opis

Definicja w wierszu 646 pliku camera_common.h .

Dokumentacja pola

Typowe metody modułu aparatu. Ta musi być pierwszym elementem camera_module ponieważ użytkownicy tej struktury będą rzutować hw_module_t do camera_module wskaźnika w kontekstach, w których wiadomo, że hw_module_t odwołuje się do camera_module .

Wartości zwracane przez common.methods->open w przypadku camera_module to:

0: pomyślne otwarcie urządzenia z kamerą.

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

-EINVAL: nieprawidłowe argumenty wejściowe, np. nieprawidłowy identyfikator lub nieprawidłowy moduł.

-EBUSY: urządzenie z aparatem zostało już otwarte dla tego identyfikatora kamery (za pomocą tej metody lub open_legacy), niezależnie od wersji interfejsu HAL, w której zostało otwarte.

-EUSERS: maksymalna liczba urządzeń z kamerą, które można otworzyć jednocześnie, została już otwarta za pomocą tej metody lub metody open_legacy.

Wszystkie inne wartości zwracane przez 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:

Zwraca informacje o statycznej kamerze w przypadku danego urządzenia. Te informacje mogą się nie zmienić w przypadku urządzenia z kamerą.

Zwracane wartości:

0: po pomyślnym przeprowadzeniu operacji

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

-EINVAL: nieprawidłowe argumenty wejściowe, np. nieprawidłowy identyfikator lub nieprawidłowy moduł.

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

CAMERA_MODULE_API_VERSION_2_4 lub nowsza:

Gdy kamera zostanie odłączona, jej identyfikator stanie się nieprawidłowy. Wywołanie tej metody z nieprawidłowym identyfikatorem aparatu spowoduje otrzymanie wartości -EINVAL i NULL w przypadku metadanych statycznych aparatu ( camera_info.static_camera_characteristics ).

Definicja w wierszu 727 pliku camera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras:

Zwraca liczbę urządzeń z kamerą dostępnych za pomocą modułu kamery. Urządzenia kamer mają numery od 0 do N-1, gdzie N to wartość zwrócona przez to wywołanie. Nazwa urządzenia fotograficznego w przypadku open() to po prostu liczba zamieniona na ciąg znaków. Oznacza to, że „0” oznacza identyfikator 0, „1” – identyfikator 1.

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

CAMERA_MODULE_API_VERSION_2_3 lub starsza:

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

CAMERA_MODULE_API_VERSION_2_4 lub nowsza:

Wartość musi być statyczna i musi uwzględniać tylko wbudowane kamery, które mają wartości 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. Ramy 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:

Poznaj metody uzyskiwania informacji o metadanych tagów rozszerzeń dostawcy. HAL powinien wypełnić wszystkie metody operacji tagu dostawcy lub pozostawić opcje bez zmian, jeśli nie zdefiniowano żadnych tagów dostawcy.

Struktura vendor_tag_ops użyta w tym miejscu jest zdefiniowana w pliku 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 jest udostępniany przez moduł HAL. Framework może nie wywołać tej funkcji.

CAMERA_MODULE_API_VERSION_2_2: może być wywoływany przez framework.

Definicja w wierszu 778 pliku camera_common.h .

int(* init)()

init:

Ta metoda jest wywoływana przez usługę aparatu przed wywołaniem innych metod, tuż po załadowaniu biblioteki HAL aparatu. Jeśli nie jest wymagana żadna inicjalizacja, moduł HAL może pozostawić ten parametr jako NULL.

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

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 jest udostępniany przez moduł HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_4: jeśli nie jest równe NULL, framework wywoła tę metodę zawsze po załadowaniu modułu HAL, ale przed wywołaniem dowolnej innej metody modułu HAL.

Zwracane wartości:

0: w przypadku udanej operacji.

-ENODEV: nie można zakończyć inicjalizacji z powodu błędu wewnętrznego. Należy założyć, że HAL jest w stanie niedziałającym.

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 **device)

open_legacy:

Otwórz określone urządzenie z używającym starszego interfejsu HAL aparatu, jeśli ten moduł obsługuje wiele wersji interfejsu HAL urządzenia. Jeśli na przykład moduł aparatu obsługuje interfejsy CAMERA_DEVICE_API_VERSION_1_0 i CAMERA_DEVICE_API_VERSION_3_2 dla tego samego identyfikatora aparatu, framework może wywołać tę funkcję, aby otworzyć urządzenie z aparatem jako urządzenie CAMERA_DEVICE_API_VERSION_1_0.

Ta metoda jest opcjonalna. Moduł HAL aparatu nie musi obsługiwać więcej niż 1 wersji HAL na urządzenie, a takie moduły mogą zwracać -ENOSYS we wszystkich wywołaniach tej metody. W przypadku wszystkich starszych wersji interfejsu HAL, które nie są obsługiwane, może zwrócić wartość -EOPNOTSUPP. W takich przypadkach framework użyje zamiast tego zwykłej metody 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 jest udostępniany przez moduł HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_3: może być wywoływana przez platformę.

Zwracane wartości:

0: pomyślne otwarcie urządzenia z kamerą.

-ENOSYS Ta metoda nie jest obsługiwana.

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

-EINVAL: nieprawidłowe argumenty wejściowe, np. nieprawidłowy identyfikator lub nieprawidłowy moduł.

-EBUSY: urządzenie z aparatem zostało już otwarte dla tego identyfikatora kamery (za pomocą tej metody lub metody common.methods->open), niezależnie od wersji interfejsu HAL, w której zostało otwarte.

-EUSERS: maksymalna liczba urządzeń z kamerą, które można otworzyć jednocześnie, została już otwarta za pomocą tej metody lub metody common.methods->open.

Definicja w wierszu 824 pliku camera_common.h .

void* reserved[5]

Definicja w wierszu 912 pliku camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Przekaż modułowi HAL wskaźniki funkcji wywołania zwrotnego, aby poinformować framework o asymetrycznych zdarzeniach modułu kamery. Framework wywoła tę funkcję raz po początkowym załadowaniu modułu HAL aparatu, po wywołaniu po raz pierwszy metody get_number_of_cameras() i przed wszystkimi 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 jest dostarczany przez moduł HAL. Framework może nie wywołać tej funkcji.

CAMERA_MODULE_API_VERSION_2_1:

Może być wywoływana przez platformę.

Zwracane wartości:

0: po pomyślnym przeprowadzeniu operacji

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

-EINVAL: nieprawidłowe argumenty wejściowe, np. funkcje zwrotne są puste

Definicja w wierszu 758 pliku camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool enabled)

set_torch_mode:

Włączanie i wyłączanie trybu latarki lampy błyskowej powiązanej z danym identyfikatorem aparatu. Jeśli operacja się powiedzie, HAL musi powiadomić framework o stanie lampy błyskowej, wywołując camera_module_callbacks.torch_mode_status_change() z nowym stanem.

Urządzenie aparatu ma wyższy priorytet dostępu do lampy błyskowej. W przypadku konfliktów zasobów, np. wywołania open() w celu otwarcia urządzenia z kamerą, moduł HAL musi powiadomić framework za pomocą funkcji camera_module_callbacks.torch_mode_status_change() o wyłączeniu trybu latarki i zmianie jego stanu na TORCH_MODE_STATUS_NOT_AVAILABLE. Gdy zasoby do włączenia trybu latarki są ponownie dostępne, moduł HAL musi powiadomić framework za pomocą funkcji camera_module_callbacks.torch_mode_status_change() o tym, że stan trybu latarki zmienił się na TORCH_MODE_STATUS_AVAILABLE_OFF, aby można było wywołać funkcję set_torch_mode() .

Gdy framework wywołuje funkcję set_torch_mode() w celu włączenia trybu latarki jednostki lampy błyskowej, jeśli HAL nie może włączyć kilku trybów latarki jednocześnie, powinien wyłączyć tryb latarki, który został włączony przez poprzednie wywołanie funkcji set_torch_mode() i poinformować framework, że stan trybu latarki tej jednostki lampy błyskowej to 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 jest udostępniany przez moduł HAL. Framework nie wywoła tej funkcji.

CAMERA_MODULE_API_VERSION_2_4: można wywołać w ramach frameworku.

Zwracane wartości:

0: w przypadku udanej operacji.

-ENOSYS: urządzenie z kamerą nie obsługuje tej operacji. Zwracana jest tylko wtedy, gdy android.flash.info.available ma wartość false.

-EBUSY: urządzenie z kamerą jest już używane.

-EUSERS: zasoby potrzebne do włączenia trybu latarki są niedostępne, zwykle dlatego, że inne urządzenia z kamerą zajmują zasoby, uniemożliwiając użycie lampy błyskowej.

-EINVAL: camera_id jest nieprawidłowy.

Definicja w wierszu 878 pliku camera_common.h .


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