Camera_device_ops Odniesienie do struktury
#include < camera.h >
szczegółowy opis
Dokumentacja terenowa
int(* auto_focus)(struct kamera_urządzenie *) |
Uruchom automatyczne ustawianie ostrości. Po zakończeniu ustawiania ostrości wywoływana jest procedura powiadamiania zwrotnego za pomocą CAMERA_MSG_FOCUS. funkcja autoFocus() zostanie wywołana ponownie, jeśli będzie potrzebna kolejna funkcja automatycznego ustawiania ostrości.
int(* cancel_auto_focus)(struct kamera_urządzenie *) |
Anuluje funkcję automatycznego ustawiania ostrości. Jeżeli automatyczne ustawianie ostrości jest nadal w toku, funkcja ta anuluje je. Niezależnie od tego, czy trwa automatyczna regulacja ostrości, czy nie, funkcja ta przywróci domyślną pozycję ostrości. Jeśli aparat nie obsługuje automatycznego ustawiania ostrości, nie jest to możliwe.
int(* anulowanie_obrazu)(struktura urządzenie_kamery *) |
void(* wyłącz_msg_type)(struct kamera_urządzenie *, int32_t msg_type) |
Wyłącz wiadomość lub zestaw wiadomości.
Po odebraniu wywołania DisableMsgType(CAMERA_MSG_VIDEO_FRAME) warstwa HAL kamery nie powinna polegać na swoim kliencie w zakresie wywołania metody releaseRecordingFrame() w celu zwolnienia klatek nagrania wideo wysłanych przez kamerową warstwę HAL przed i po wywołaniu DisableMsgType(CAMERA_MSG_VIDEO_FRAME). Klientom HAL kamery nie wolno modyfikować ani uzyskiwać dostępu do żadnej klatki nagrywania wideo po wywołaniu funkcji DisableMsgType(CAMERA_MSG_VIDEO_FRAME).
int(* dump)(struct kamera_urządzenie *, int fd) |
void(* Enable_msg_type)(struct kamera_device *, int32_t msg_type) |
char*(* get_parameters)(struct kamera_urządzenie *) |
int(* msg_type_enabled)(struct kamera_urządzenie *, int32_t msg_type) |
int(* podgląd_włączony)(struktura urządzenie_kamery *) |
void(* put_parameters)(struct kamera_urządzenie *, char *) |
Kamera HAL wykorzystuje własną pamięć do przekazywania nam parametrów, gdy wywołujemy get_parameters. Użyj tej funkcji, aby zwrócić pamięć z powrotem do HAL kamery, jeśli put_parameters nie ma wartości NULL. Jeśli put_parameters ma wartość NULL, musisz użyć funkcji free(), aby zwolnić pamięć.
int(* nagrywanie_włączone)(struct kamera_urządzenie *) |
void(* wydanie)(struktura urządzenie_kamery *) |
void(* release_recording_frame)(struct kamera_device *, const void *opaque) |
Zwolnij klatkę zapisu zwróconą wcześniej przez CAMERA_MSG_VIDEO_FRAME.
Klient HAL kamery jest odpowiedzialny za zwolnienie klatek nagrania wideo wysyłanych przez warstwę HAL kamery, zanim HAL kamery odbierze wywołanie dezaktywująceMsgType(CAMERA_MSG_VIDEO_FRAME). Po odebraniu wywołania dezaktywacjiMsgType(CAMERA_MSG_VIDEO_FRAME) za zarządzanie cyklem życia klatek zapisu wideo odpowiada warstwa HAL kamery.
int(* send_command)(struct kamera_urządzenie *, int32_t cmd, int32_t arg1, int32_t arg2) |
void(* set_callbacks)(struct kamera_device *, kamera_notify_callback notify_cb, kamera_data_callback data_cb, kamera_data_timestamp_callback data_cb_timestamp, kamera_request_memory get_memory, void *user) |
int(* set_parameters)(struct kamera_urządzenie *, const char *parms) |
int(* set_preview_window)(struct Camera_Device *, struct Preview_stream_ops *window) |
int(* start_preview)(struct kamera_urządzenie *) |
int(* start_recording)(struct kamera_urządzenie *) |
Uruchom tryb nagrywania. Gdy dostępny jest zarejestrowany obraz, wysyłany jest komunikat CAMERA_MSG_VIDEO_FRAME z odpowiednią ramką. Każda klatka zapisu musi zostać zwolniona przez klienta HAL kamery za pomocą metody releaseRecordingFrame(), zanim klient wywoła opcję DisableMsgType(CAMERA_MSG_VIDEO_FRAME). Po wywołaniu przez klienta DisableMsgType(CAMERA_MSG_VIDEO_FRAME) za zarządzanie cyklem życia klatek nagrywania wideo odpowiedzialna jest warstwa HAL kamery, a klientowi nie wolno modyfikować ani uzyskiwać dostępu do żadnych klatek nagrywania wideo.
void(* stop_preview)(struktura urządzenie_kamery *) |
void(* stop_recording)(struct kamera_urządzenie *) |
int(* store_meta_data_in_buffers)(struct kamera_device *, int włącz) |
Poproś kamerę HAL o przechowywanie metadanych lub rzeczywistych danych YUV w buforach wideo wysyłanych za pośrednictwem CAMERA_MSG_VIDEO_FRAME dla sesji nagraniowej. Jeśli nie zostanie wywołane, domyślnym zachowaniem HAL kamery będzie przechowywanie prawdziwych danych YUV w buforach wideo.
Aby metoda ta była skuteczna, powinna zostać wywołana przed startRecording().
Jeżeli metadane są przechowywane w buforach wideo, do odbiorcy buforów wideo należy interpretacja zawartości i znalezienie rzeczywistych danych klatki 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 warstwa HAL kamery nie obsługuje przechowywania metadanych w buforach wideo, gdy jest to wymagane, należy zwrócić INVALID_OPERATION. Bardzo przydatne jest, aby kamera HAL przesyłał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 true, instruuje kamerę HAL, aby przechowywała metadane w buforach wideo; false , aby poinstruować kamerę HAL, aby przechowywała prawdziwe dane YUV w buforach wideo.
- Zwroty
- OK, jeśli chodzi o sukces.
int(* take_picture)(struct kamera_urządzenie *) |
Dokumentacja tej struktury została wygenerowana z następującego pliku:
- hardware/libhardware/include/hardware/ camera.h