Camera2_device_ops Odniesienie do struktury

Camera2_device_ops Odniesienie do struktury

#include < camera2.h >

Pola danych

int(* set_request_queue_src_ops )(const struktura kamera2_device *, const kamera2_request_queue_src_ops_t *request_src_ops)
int(* notify_request_queue_not_empty )(stała struktura kamera2_device *)
int(* set_frame_queue_dst_ops )(stała struktura kamera2_device *, const kamera2_frame_queue_dst_ops_t *frame_dst_ops)
int(* get_in_progress_count )(stała struktura kamera2_device *)
int(* Flush_captures_in_progress )(stała struktura kamera2_device *)
int(* const struct_default_request )(const struct kamera2_device *, int request_template, kamera_metadata_t **żądanie)
int(* allocate_stream )(const struktura kamera2_device *, uint32_t szerokość, uint32_t wysokość, int format, const kamera2_stream_ops_t *stream_ops, uint32_t *stream_id, uint32_t *format_actual, uint32_t *użycie, uint32_t *max_buffers)
int(* Register_stream_buffers )(const struktura kamera2_device *, uint32_t stream_id, int num_buffers, bufor_handle_t *bufory)
int(* release_stream )(stała struktura kamera2_device *, uint32_t stream_id)
int(* allocate_reprocess_stream )(const struktura kamera2_device *, uint32_t szerokość, uint32_t wysokość, uint32_t format, const kamera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)
int(* allocate_reprocess_stream_from_stream )(const struktura kamera2_device *, uint32_t Output_stream_id, const kamera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id)
int(* release_reprocess_stream )(stała struktura kamera2_device *, uint32_t stream_id)
int(* wyzwalacz_akcja )(stała struktura kamera2_urządzenie *, uint32_t wyzwalacz_id, int32_t ext1, int32_t ext2)
int(* set_notify_callback )(stała struktura kamera2_device *, kamera2_notify_callback notify_cb, void *user)
int(* get_metadata_vendor_tag_ops )(stała struktura kamera2_device *, sprzedawca_tag_query_ops_t **ops)
int(* zrzut )(const struct kamera2_device *, int fd)
int(* get_instance_metadata )(stała struktura kamera2_device *, kamera_metadata **instance_metadata)

szczegółowy opis

Definicja w linii 527 pliku kamera2.h .

Dokumentacja terenowa

int(* allocate_reprocess_stream)(const struktura kamera2_device *, uint32_t szerokość, uint32_t wysokość, uint32_t format, const kamera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)

allocate_reprocess_stream:

Przydziel do użycia nowy strumień wejściowy, zdefiniowany przez szerokość bufora wyjściowego, wysokość i format pikseli. W przypadku powodzenia zwraca identyfikator nowego strumienia, flagi użycia gralloc i wymaganą liczbę buforów, które można jednocześnie uzyskać. Warunki błędu:

  • Żądanie kombinacji szerokości/wysokości/formatu, która nie jest wymieniona jako obsługiwana przez charakterystykę statyczną czujnika
  • Prośba o jednoczesną konfigurację zbyt wielu strumieni ponownego przetwarzania.

Parametry wejściowe:

  • szerokość, wysokość, format: Specyfikacja buforów przesyłanych przez ten strumień. Format musi być wartością z listy HAL_PIXEL_FORMAT_*.
  • reprocess_stream_ops: Struktura wskaźników funkcji do pobierania i zwalniania buforów dla tego strumienia. Podstawowy strumień zostanie skonfigurowany na podstawie danych wyjściowych użycia i max_buffers.

Parametry wyjściowe:

  • stream_id: Liczba całkowita bez znaku identyfikująca ten strumień. Ta wartość jest używana w przychodzących żądaniach w celu identyfikacji strumienia i podczas zwalniania strumienia. Identyfikatory te są numerowane oddzielnie od identyfikatorów strumieni wejściowych.
  • Consumer_usage: Maska użycia gralloc potrzebna urządzeniu HAL do wykorzystania żądanego typu danych. Służy do alokacji nowych buforów graloc dla kolejki buforów strumieniowych.
  • max_buffers: Maksymalna liczba buforów, które urządzenie HAL może potrzebować w tym samym czasie. Urządzenie nie może posiadać jednocześnie większej liczby buforów niż ta wartość.

Definicja w linii 708 pliku kamera2.h .

int(* allocate_reprocess_stream_from_stream)(const struktura kamera2_device *, uint32_t Output_stream_id, const kamera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id)

allocate_reprocess_stream_from_stream:

Przydziel do użycia nowy strumień wejściowy, który będzie korzystał z buforów przydzielonych dla istniejącego strumienia wyjściowego. Oznacza to, że po tym, jak warstwa HAL umieści bufor w strumieniu wyjściowym, może zobaczyć ten sam bufor przekazany jej z tego wejściowego strumienia ponownego przetwarzania. Gdy warstwa HAL zwolni bufor z powrotem do strumienia ponownego przetwarzania, zostanie on zwrócony do kolejki wyjściowej w celu ponownego użycia.

Warunki błędu:

  • Wykorzystanie strumienia wyjściowego o nieodpowiednim rozmiarze/formacie jako podstawy strumienia ponownego przetwarzania.
  • Próba przydzielenia zbyt wielu strumieni ponownego przetwarzania na raz.

Parametry wejściowe:

  • Output_stream_id: Identyfikator istniejącego strumienia wyjściowego, który ma rozmiar i format odpowiedni do ponownego przetworzenia.
  • reprocess_stream_ops: Struktura wskaźników funkcji do pobierania i zwalniania buforów dla tego strumienia. Strumień bazowy będzie korzystał z tych samych uchwytów buforów graficznych, co strumień wyjściowy.

Parametry wyjściowe:

  • stream_id: Liczba całkowita bez znaku identyfikująca ten strumień. Ta wartość jest używana w przychodzących żądaniach w celu identyfikacji strumienia i podczas zwalniania strumienia. Identyfikatory te są numerowane oddzielnie od identyfikatorów strumieni wejściowych.

Klient HAL musi zawsze zwolnić strumień ponownego przetwarzania, zanim zwolni strumień wyjściowy, na którym jest oparty.

Definicja w linii 754 pliku kamera2.h .

int(* allocate_stream)(const struktura kamera2_device *,uint32_t szerokość, uint32_t wysokość, int format, const kamera2_stream_ops_t *stream_ops,uint32_t *stream_id, uint32_t *format_actual,uint32_t *użycie, uint32_t *max_buffers)

przydziel_strumień:

Przydziel do użycia nowy strumień wyjściowy, zdefiniowany przez szerokość bufora wyjściowego, wysokość, cel i ewentualnie format pikseli. Jeśli operacja się powiedzie, zwraca identyfikator nowego strumienia, flagi użycia gralloc, minimalną liczbę buforów kolejki i ewentualnie format pikseli. Warunki błędu:

  • Żądanie kombinacji szerokości/wysokości/formatu, która nie jest wymieniona jako obsługiwana przez charakterystykę statyczną czujnika
  • Pytanie o zbyt wiele strumieni danego typu formatu (na przykład 2 strumienie Bayer).

Parametry wejściowe:

  • szerokość, wysokość, format: Specyfikacja buforów przesyłanych przez ten strumień. Format to wartość z listy HAL_PIXEL_FORMAT_*. Jeśli używany jest HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, wówczas moduł gralloc platformy wybierze format w oparciu o flagi użycia dostarczone przez kamerę HAL i konsumenta strumienia. Kamera HAL powinna sprawdzić bufory przekazane jej w wywołaniu Register_stream_buffers, aby w razie potrzeby uzyskać format specyficzny dla implementacji.
  • stream_ops: Struktura wskaźników funkcji do uzyskiwania i kolejkowania buforów dla tego strumienia. Podstawowy strumień zostanie skonfigurowany na podstawie danych wyjściowych użycia i max_buffers. Metody w tej strukturze nie mogą być wywoływane, dopóki nie zwróci wartości allocate_stream.

Parametry wyjściowe:

  • stream_id: Liczba całkowita bez znaku identyfikująca ten strumień. Ta wartość jest używana w przychodzących żądaniach w celu identyfikacji strumienia i podczas zwalniania strumienia.
  • użycie: maska ​​użycia gralloc potrzebna urządzeniu HAL do wygenerowania żądanego typu danych. Służy do alokacji nowych buforów graloc dla kolejki buforów strumieniowych.
  • max_buffers: Maksymalna liczba buforów, które urządzenie HAL może potrzebować usunąć z kolejki w tym samym czasie. Urządzenie nie może jednocześnie usuwać z kolejki większej liczby buforów niż ta wartość.

Definicja w linii 632 pliku kamera2.h .

int(* conststruct_default_request)(const struct kamera2_device *, int request_template, kamera_metadata_t **request)

Utwórz wypełnione żądanie domyślne dla standardowych przypadków użycia aparatu.

Urządzenie musi zwrócić pełne żądanie skonfigurowane tak, aby spełniało żądany przypadek użycia, który musi być jednym z wyliczeń CAMERA2_TEMPLATE_*. Muszą zostać uwzględnione wszystkie pola kontroli żądań, z wyjątkiem android.request.outputStreams.

Zwrócony bufor metadanych musi zostać przydzielony za pomocą allocate_camera_metadata. Struktura przejmuje własność bufora.

Definicja w linii 580 pliku kamera2.h .

int(* dump)(const struct kamera2_device *, int fd)

Zrzut stanu sprzętu kamery

Definicja w linii 801 pliku kamera2.h .

int(* Flush_captures_in_progress)(stała struktura kamera2_device *)

Opróżnij wszystkie trwające przechwytywania. Obejmuje to wszystkie żądania usunięte z kolejki (zwykłe lub przetwarzane ponownie), które nie umieściły jeszcze żadnych wyników w strumieniu lub kolejce ramek. Częściowo ukończone przechwytywanie należy zakończyć normalnie. Żadne nowe żądania nie mogą być usuwane z kolejki żądań do czasu zakończenia opróżniania.

Definicja w linii 567 pliku kamera2.h .

int(* get_in_progress_count)(stała struktura kamera2_device *)

Liczba żądań kamery przetwarzanych w tej chwili przez urządzenie (przechwytywania/ponowne przetwarzanie, których żądania zostały usunięte z kolejki, ale nie zostały jeszcze umieszczone w kolejce potoków wyjściowych). Struktura nie może zwolnić żadnych strumieni, dopóki liczba postępów nie wyniesie 0.

Definicja w linii 558 pliku kamera2.h .

int(* get_instance_metadata)(const struct kamera2_device *, kamera_metadata **instance_metadata)

Uzyskaj metadane specyficzne dla instancji urządzenia. Te metadane muszą być stałe dla pojedynczej instancji urządzenia z kamerą, ale mogą się różnić w przypadku wywołań open(). Zwrócony wskaźnik Camera_metadata musi być ważny do czasu wywołania metody urządzenia Close().

Informacje o wersji:

CAMERA_DEVICE_API_VERSION_2_0:

Niedostępne. Framework może nie uzyskać dostępu do tego wskaźnika funkcji.

CAMERA_DEVICE_API_VERSION_2_1:

Ważny. Można wywołać przez framework.

Definicja w linii 820 pliku kamera2.h .

int(* get_metadata_vendor_tag_ops)(stała struktura kamera2_device *, sprzedawca_tag_query_ops_t **ops)

Uzyskaj metody wysyłania zapytań o informacje o znacznikach metadanych rozszerzenia dostawcy. Może ustawić ops na NULL, jeśli nie zdefiniowano tagów rozszerzenia dostawcy.

Definicja w linii 795 pliku kamera2.h .

int(* notify_request_queue_not_empty)(stała struktura kamera2_urządzenie *)

Powiadom urządzenie, że kolejka żądań nie jest już pusta. Należy wywołać tylko wtedy, gdy pierwszy bufor zostanie dodany do nowej kolejki lub gdy źródło zwróci NULL w odpowiedzi na wywołanie usunięcia z kolejki.

Definicja w linii 544 pliku kamera2.h .

int(* Register_stream_buffers)(const struct kamera2_device *, uint32_t stream_id, int num_buffers, bufor_handle_t *bufory)

Zarejestruj bufory dla danego strumienia. Jest to wywoływane po pomyślnym wywołaniu allocate_stream i przed umieszczeniem w kolejce pierwszego żądania odwołującego się do strumienia. Ta metoda ma na celu umożliwienie urządzeniu HAL mapowania lub innego przygotowania buforów do późniejszego użycia. Gwarantowana wartość num_buffers wynosi co najmniej max_buffers (z allocate_stream), ale może być większa. Bufory będą już zablokowane do użycia. Po zakończeniu wywołania wszystkie bufory muszą być gotowe do powrotu do kolejki. Jeśli format strumienia ustawiono na HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, warstwa HAL kamery powinna sprawdzić przekazane tutaj bufory, aby określić wszelkie informacje o formacie pikseli prywatnych platformy.

Definicja w linii 657 pliku kamera2.h .

int(* release_reprocess_stream)(stała struktura kamera2_device *, uint32_t stream_id)

Zwolnij strumień ponownego przetwarzania. Zwraca błąd, jeśli zostanie wywołany, gdy get_in_progress_count jest różny od zera lub jeśli identyfikator strumienia jest nieprawidłowy.

Definicja w linii 765 pliku kamera2.h .

int(* release_stream)(stała struktura kamera2_device *, uint32_t stream_id)

Wypuść strumień. Zwraca błąd, jeśli zostanie wywołany, gdy get_in_progress_count jest różny od zera lub jeśli identyfikator strumienia jest nieprawidłowy.

Definicja w linii 667 pliku kamera2.h .

int(* set_frame_queue_dst_ops)(const struktura kamera2_device *, const kamera2_frame_queue_dst_ops_t *frame_dst_ops)

Przekaż metody interfejsu kolejki ramek wyjściowych

Definicja w linii 549 pliku kamera2.h .

int(* set_notify_callback)(stała struktura kamera2_device *, kamera2_notify_callback notify_cb, void *user)

Konfiguracja wywołania zwrotnego powiadomień

Definicja w linii 787 pliku kamera2.h .

int(* set_request_queue_src_ops)(const struktura kamera2_device *, const kamera2_request_queue_src_ops_t *request_src_ops)

Przekaż metody interfejsu kolejki żądań wejściowych.

Definicja w linii 536 pliku kamera2.h .

int(* wyzwalacz_akcja)(stała struktura kamera2_urządzenie *, uint32_t wyzwalacz_id, int32_t ext1, int32_t ext2)

Wyzwalaj aktywność asynchroniczną. Służy do wyzwalania specjalnych zachowań procedur kamery 3A, gdy są one używane. Zobacz dokumentację CAMERA2_TRIGGER_* powyżej, aby uzyskać szczegółowe informacje na temat identyfikatorów wyzwalaczy i ich argumentów.

Definicja w linii 779 pliku kamera2.h .


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