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

camera_device_ops Informacje o strukturze

camera_device_ops Informacje o strukturze

#include < camera.h >

Pola danych

int(* set_preview_window )(struct camera_device *, struct preview_stream_ops *window)
próżnia(* set_callbacks )(struct camera_device *, camera_notify_callback notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)
próżnia(* enable_msg_type )(struct camera_device *, int32_t msg_type)
próżnia(* disable_msg_type )(struct camera_device *, int32_t msg_type)
int(* msg_type_enabled )(struct camera_device *, int32_t msg_type)
int(* start_preview )(struct camera_device *)
próżnia(* stop_preview )(struct camera_device *)
int(* Preview_enabled )(struct camera_device *)
int(* store_meta_data_in_buffers )(struct camera_device *, int enable)
int(* start_recording )(struct camera_device *)
próżnia(* stop_recording )(struct camera_device *)
int(* nagrywanie_włączone )(struct camera_device *)
próżnia(* release_recording_frame )(struct camera_device *, const void *opaque)
int(* auto_focus )(struct camera_device *)
int(* cancel_auto_focus )(struct camera_device *)
int(* zrób_zdjęcie )(struct camera_device *)
int(* cancel_picture )(struct camera_device *)
int(* set_parameters )(struct camera_device *, const char *parms)
znak *(* get_parameters )(struct camera_device *)
próżnia(* put_parameters )(struct camera_device *, char *)
int(* send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
próżnia(* release )(struct camera_device *)
int(* dump )(struct camera_device *, int fd)

szczegółowy opis

Definicja w wierszu 99 pliku camera.h .

Dokumentacja terenowa

int(* auto_focus)(struct camera_device *)

Uruchom automatyczne ustawianie ostrości, procedura wywołania zwrotnego powiadomień jest wywoływana z CAMERA_MSG_FOCUS raz po zakończeniu ustawiania ostrości. autoFocus() zostanie wywołane ponownie, jeśli potrzebne będzie kolejne autofocus.

Definicja w wierszu 227 pliku camera.h .

int(* cancel_auto_focus)(struct camera_device *)

Anuluje funkcję autofokusa. Jeśli autofokus jest nadal w toku, ta funkcja anuluje go. Niezależnie od tego, czy autofokus jest w toku, czy nie, ta funkcja przywróci domyślne położenie ostrości. Jeśli aparat nie obsługuje automatycznego ustawiania ostrości, oznacza to brak operacji.

Definicja w wierszu 235 pliku camera.h .

int(* cancel_picture)(struct camera_device *)

Anuluj zdjęcie, które zostało rozpoczęte za pomocą takePicture. Wywołanie tej metody, gdy nie jest robione żadne zdjęcie, to no-op.

Definicja w wierszu 246 pliku camera.h .

void(* disable_msg_type)(struct camera_device *, int32_t msg_type)

Wyłącz wiadomość lub zestaw wiadomości.

Po otrzymaniu wywołania disableMsgType(CAMERA_MSG_VIDEO_FRAME), warstwa HAL kamery nie powinna polegać na swoim kliencie, aby wywołać releaseRecordingFrame() w celu zwolnienia klatek nagrywania wideo wysyłanych przez warstwę HAL kamery przed i po wywołaniu disableMsgType(CAMERA_MSG_VIDEO_FRAME). Klienci kamery HAL nie mogą modyfikować ani uzyskiwać dostępu do żadnej klatki nagrywania wideo po wywołaniu disableMsgType(CAMERA_MSG_VIDEO_FRAME).

Definicja w wierszu 132 pliku camera.h .

int(* dump)(struct camera_device *, int fd)

Stan zrzutu sprzętu kamery

Definicja w wierszu 282 pliku camera.h .

void(* enable_msg_type)(struct camera_device *, int32_t msg_type)

Wszystkie poniższe trzy funkcje przyjmują msg_type, który jest maską bitową wiadomości zdefiniowanych w pliku include/ui/Camera.h Włącz wiadomość lub zestaw wiadomości.

Definicja w linii 120 pliku camera.h .

char*(* get_parameters)(struct camera_device *)

Pobierz parametry kamery. Bufor zwrócony przez kamerę HAL musi zostać zwrócony do niej za pomocą put_parameters, jeśli put_parameters nie ma wartości NULL.

Definicja w wierszu 258 pliku camera.h .

int(* msg_type_enabled)(struct camera_device *, int32_t msg_type)

Zapytaj, czy wiadomość lub zestaw wiadomości jest włączony. Zauważ, że działa to jako AND, jeśli którykolwiek z odpytywanych komunikatów jest wyłączony, zwróci false.

Definicja w wierszu 139 pliku camera.h .

int(* preview_enabled)(struct camera_device *)

Zwraca true, jeśli podgląd jest włączony.

Definicja w wierszu 154 pliku camera.h .

void(* put_parameters)(struct camera_device *, char *)

Kamera HAL używa własnej pamięci, aby przekazać nam parametry, gdy wywołujemy get_parameters. Użyj tej funkcji, aby zwrócić pamięć z powrotem do kamery HAL, jeśli put_parameters nie ma wartości NULL. Jeśli put_parameters ma wartość NULL, musisz użyć free(), aby zwolnić pamięć.

Definicja w wierszu 265 pliku camera.h .

int(* nagrywanie_włączone)(struct camera_device *)

Zwraca true, jeśli nagrywanie jest włączone.

Definicja w wierszu 208 pliku camera.h .

void(* release)(struct camera_device *)

Zwolnij zasoby sprzętowe należące do tego obiektu. Zauważ, że nie jest to zrobione w destruktorze.

Definicja w wierszu 277 pliku camera.h .

void(* release_recording_frame)(struct camera_device *, const void *opaque)

Zwolnij ramkę rekordu zwróconą wcześniej przez CAMERA_MSG_VIDEO_FRAME.

Obowiązkiem klienta warstwy HAL kamery jest zwolnienie klatek nagrywania wideo wysłanych przez warstwę HAL kamery, zanim kamera HAL otrzyma wezwanie do wyłączenia MsgType (CAMERA_MSG_VIDEO_FRAME). Po odebraniu wywołania wyłączenia MsgType (CAMERA_MSG_VIDEO_FRAME) za zarządzanie cyklem życia klatek nagrywania wideo odpowiada warstwa HAL kamery.

Definicja w wierszu 219 pliku camera.h .

int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)

Wyślij polecenie do sterownika aparatu.

Definicja w wierszu 270 pliku camera.h .

void(* set_callbacks)(struct camera_device *, camera_notify_callback notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)

Ustaw powiadomienia i wywołania zwrotne danych

Definicja w wierszu 105 pliku camera.h .

int(* set_parameters)(struct camera_device *, const char *parms)

Ustaw parametry kamery. Zwraca BAD_VALUE, jeśli jakikolwiek parametr jest nieprawidłowy lub nieobsługiwany.

Definicja w wierszu 252 pliku camera.h .

int(* set_preview_window)(struct camera_device *, struct preview_stream_ops *window)

Ustaw ANativeWindow, do którego wysyłane są ramki podglądu

Definicja w wierszu 101 pliku camera.h .

int(* start_preview)(struct camera_device *)

Uruchom tryb podglądu.

Definicja w wierszu 144 pliku camera.h .

int(* start_recording)(struct camera_device *)

Uruchom tryb nagrywania. Gdy obraz nagrania jest dostępny, wiadomość CAMERA_MSG_VIDEO_FRAME jest wysyłana z odpowiednią ramką. Każda ramka nagrywania musi zostać zwolniona przez klienta HAL kamery za pomocą releaseRecordingFrame(), zanim klient wywoła disableMsgType(CAMERA_MSG_VIDEO_FRAME). Po wywołaniu przez klienta disableMsgType(CAMERA_MSG_VIDEO_FRAME), zarządzanie cyklem życia klatek nagrywania wideo jest obowiązkiem warstwy HAL kamery, a klient nie może modyfikować ani uzyskiwać dostępu do żadnych klatek nagrywania wideo.

Definicja w wierszu 198 pliku camera.h .

void(* stop_preview)(struct camera_device *)

Zatrzymaj poprzednio uruchomiony podgląd.

Definicja w wierszu 149 pliku camera.h .

void(* stop_recording)(struct camera_device *)

Zatrzymaj wcześniej rozpoczęte nagrywanie.

Definicja w wierszu 203 pliku camera.h .

int(* store_meta_data_in_buffers)(struct camera_device *, int enable)

Poproś kamerę HAL o przechowywanie metadanych lub rzeczywistych danych YUV w buforach wideo wysyłanych przez CAMERA_MSG_VIDEO_FRAME na sesję nagrywania. Jeśli nie zostanie wywołane, domyślnym zachowaniem kamery HAL jest przechowywanie prawdziwych danych YUV w buforach wideo.

Ta metoda powinna zostać wywołana przed startRecording(), aby była skuteczna.

Jeśli metadane są przechowywane w buforach wideo, od odbiorcy buforów wideo zależy zinterpretowanie zawartości i znalezienie rzeczywistych danych ramki za pomocą metadanych w buforze. Sposób, w jaki to się robi, wykracza poza zakres tej metody.

Niektóre warstwy HAL kamer mogą nie obsługiwać przechowywania metadanych w buforach wideo, ale wszystkie warstwy HAL kamer powinny obsługiwać przechowywanie prawdziwych danych YUV w buforach wideo. Jeśli kamera HAL nie obsługuje przechowywania metadanych w buforach wideo, gdy jest to wymagane, należy zwrócić INVALID_OPERATION. Bardzo przydatne jest, aby kamera HAL przekazywała metadane zamiast rzeczywistych danych klatki bezpośrednio do kodera wideo, ponieważ ilość nieskompresowanych danych klatki może być bardzo duża, jeśli rozmiar wideo jest duży.

Parametry
włączać jeśli prawda, nakazuje kamerze HAL przechowywanie metadanych w buforach wideo; false nakazać kamerze HAL przechowywanie prawdziwych danych YUV w buforach wideo.
Zwroty
OK na sukces.

Definicja w wierszu 186 pliku camera.h .

int(* take_picture)(struct camera_device *)

Zrobić zdjęcie.

Definicja w wierszu 240 pliku camera.h .


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