camera_device_ops Strukturreferenz

camera_device_ops Strukturreferenz

#include < camera.h >

Datenfelder

int(* set_preview_window )(struct camera_device *, struct Preview_stream_ops *window)
Leere(* set_callbacks )(struct camera_device *, camera_notify_callback notify_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)
Leere(* enable_msg_type )(struct camera_device *, int32_t msg_type)
Leere(* 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 *)
Leere(* 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 *)
Leere(* stop_recording )(struct camera_device *)
int(* Recording_enabled )(struct camera_device *)
Leere(* release_recording_frame )(struct camera_device *, const void *opaque)
int(* auto_focus )(struct camera_device *)
int(* cancel_auto_focus )(struct camera_device *)
int(* take_picture )(struct camera_device *)
int(* cancel_picture )(struct camera_device *)
int(* set_parameters )(struct camera_device *, const char *parms)
char *(* get_parameters )(struct camera_device *)
Leere(* put_parameters )(struct camera_device *, char *)
int(* send_command )(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2)
Leere(* release )(struct camera_device *)
int(* dump )(struct camera_device *, int fd)

detaillierte Beschreibung

Definition in Zeile 99 der Datei camera.h .

Felddokumentation

int(* auto_focus)(struct camera_device *)

Autofokus starten, die Benachrichtigungs-Callback-Routine wird mit CAMERA_MSG_FOCUS einmal aufgerufen, wenn die Fokussierung abgeschlossen ist. autoFocus() wird erneut aufgerufen, wenn ein weiterer Autofokus erforderlich ist.

Definition in Zeile 227 der Datei camera.h .

int(* cancel_auto_focus)(struct camera_device *)

Bricht die Autofokusfunktion ab. Wenn der Autofokus noch läuft, wird er durch diese Funktion abgebrochen. Unabhängig davon, ob der Autofokus aktiv ist oder nicht, setzt diese Funktion die Fokusposition auf die Standardeinstellung zurück. Wenn die Kamera keinen Autofokus unterstützt, ist dies ein No-Op.

Definition in Zeile 235 der Datei camera.h .

int(* cancel_picture)(struct camera_device *)

Ein mit takePicture gestartetes Bild abbrechen. Das Aufrufen dieser Methode, wenn kein Bild aufgenommen wird, ist ein No-Op.

Definition in Zeile 246 der Datei camera.h .

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

Deaktivieren Sie eine Nachricht oder eine Reihe von Nachrichten.

Sobald ein Aufruf von „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ empfangen wurde, sollte sich die Kamera-HAL nicht darauf verlassen, dass ihr Client „releaseRecordingFrame()“ aufruft, um Videoaufzeichnungsframes freizugeben, die von der Kamera-HAL vor und nach dem Aufruf von „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ gesendet wurden. Kamera-HAL-Clients dürfen nach dem Aufruf von „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ keine Videoaufzeichnungsbilder ändern/auf sie zugreifen.

Definition in Zeile 132 der Datei camera.h .

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

Dump-Status der Kamera-Hardware

Definition in Zeile 282 der Datei camera.h .

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

Die folgenden drei Funktionen benötigen alle einen msg_type, der eine Bitmaske der in include/ui/Camera.h definierten Nachrichten ist. Aktivieren Sie eine Nachricht oder einen Satz von Nachrichten.

Definition in Zeile 120 der Datei camera.h .

char*(* get_parameters)(struct camera_device *)

Rufen Sie die Kameraparameter ab. Der von der Kamera-HAL zurückgegebene Puffer muss mit put_parameters an sie zurückgegeben werden, wenn put_parameters nicht NULL ist.

Definition in Zeile 258 der Datei camera.h .

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

Fragen Sie ab, ob eine Nachricht oder eine Gruppe von Nachrichten aktiviert ist. Beachten Sie, dass dies als AND funktioniert. Wenn eine der abgefragten Nachrichten deaktiviert ist, wird „false“ zurückgegeben.

Definition in Zeile 139 der Datei camera.h .

int(* Preview_enabled)(struct camera_device *)

Gibt true zurück, wenn die Vorschau aktiviert ist.

Definition in Zeile 154 der Datei camera.h .

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

Der Kamera-HAL verwendet seinen eigenen Speicher, um uns die Parameter zu übergeben, wenn wir get_parameters aufrufen. Verwenden Sie diese Funktion, um den Speicher an die Kamera-HAL zurückzugeben, wenn put_parameters nicht NULL ist. Wenn put_parameters NULL ist, müssen Sie free() verwenden, um den Speicher freizugeben.

Definition in Zeile 265 der Datei camera.h .

int(* Recording_enabled)(struct camera_device *)

Gibt true zurück, wenn die Aufzeichnung aktiviert ist.

Definition in Zeile 208 der Datei camera.h .

void(* release)(struct camera_device *)

Geben Sie die Hardwareressourcen frei, die diesem Objekt gehören. Beachten Sie, dass dies nicht im Destruktor erfolgt.

Definition in Zeile 277 der Datei camera.h .

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

Geben Sie einen zuvor von CAMERA_MSG_VIDEO_FRAME zurückgegebenen Aufnahmerahmen frei.

Es liegt in der Verantwortung des Kamera-HAL-Clients, die von der Kamera-HAL gesendeten Videoaufzeichnungsframes freizugeben, bevor die Kamera-HAL einen Aufruf zum „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ erhält. Nachdem der Aufruf von „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ empfangen wurde, liegt es in der Verantwortung der Kamera-HAL, den Lebenszyklus der Videoaufzeichnungsbilder zu verwalten.

Definition in Zeile 219 der Datei camera.h .

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

Befehl an Kameratreiber senden.

Definition in Zeile 270 der Datei camera.h .

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

Legen Sie die Benachrichtigungs- und Datenrückrufe fest

Definition in Zeile 105 der Datei camera.h .

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

Stellen Sie die Kameraparameter ein. Dies gibt BAD_VALUE zurück, wenn ein Parameter ungültig ist oder nicht unterstützt wird.

Definition in Zeile 252 der Datei camera.h .

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

Legen Sie das ANativeWindow fest, an das Vorschaubilder gesendet werden

Definition in Zeile 101 der Datei camera.h .

int(* start_preview)(struct camera_device *)

Vorschaumodus starten.

Definition in Zeile 144 der Datei camera.h .

int(* start_recording)(struct camera_device *)

Aufnahmemodus starten. Wenn ein Aufnahmebild verfügbar ist, wird eine CAMERA_MSG_VIDEO_FRAME-Nachricht mit dem entsprechenden Frame gesendet. Jeder Aufnahmerahmen muss von einem Kamera-HAL-Client über releaseRecordingFrame() freigegeben werden, bevor der Client „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ aufruft. Nachdem der Client „disableMsgType(CAMERA_MSG_VIDEO_FRAME)“ aufgerufen hat, liegt es in der Verantwortung der Kamera-HAL, den Lebenszyklus der Videoaufzeichnungsframes zu verwalten, und der Client darf keine Videoaufzeichnungsframes ändern/auf sie zugreifen.

Definition in Zeile 198 der Datei camera.h .

void(* stop_preview)(struct camera_device *)

Stoppen Sie eine zuvor gestartete Vorschau.

Definition in Zeile 149 der Datei camera.h .

void(* stop_recording)(struct camera_device *)

Stoppen Sie eine zuvor gestartete Aufnahme.

Definition in Zeile 203 der Datei camera.h .

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

Fordern Sie die Kamera-HAL auf, Metadaten oder echte YUV-Daten in den Videopuffern zu speichern, die über CAMERA_MSG_VIDEO_FRAME für eine Aufnahmesitzung gesendet werden. Wenn es nicht aufgerufen wird, besteht das Standardverhalten der Kamera-HAL darin, echte YUV-Daten in den Videopuffern zu speichern.

Um wirksam zu sein, sollte diese Methode vor startRecording() aufgerufen werden.

Wenn Metadaten in den Videopuffern gespeichert sind, ist es Sache des Empfängers der Videopuffer, den Inhalt zu interpretieren und mithilfe der Metadaten im Puffer die tatsächlichen Bilddaten zu finden. Wie dies geschieht, liegt außerhalb des Rahmens dieser Methode.

Einige Kamera-HALs unterstützen möglicherweise nicht das Speichern von Metadaten in den Videopuffern, aber alle Kamera-HALs sollten das Speichern echter YUV-Daten in den Videopuffern unterstützen. Wenn die Kamera-HAL das Speichern der Metadaten in den Videopuffern nicht unterstützt, wenn sie dazu aufgefordert wird, muss INVALID_OPERATION zurückgegeben werden. Für die Kamera-HAL ist es sehr nützlich, Metadaten anstelle der eigentlichen Bilddaten direkt an den Video-Encoder zu übergeben, da die Menge der unkomprimierten Bilddaten bei großen Videos sehr groß sein kann.

Parameter
aktivieren wenn „true“, um die Kamera-HAL anzuweisen, Metadaten in den Videopuffern zu speichern; false, um die Kamera-HAL anzuweisen, echte YUV-Daten in den Videopuffern zu speichern.
Kehrt zurück
OK, Erfolg.

Definition in Zeile 186 der Datei camera.h .

int(* take_picture)(struct camera_device *)

Machen Sie ein Foto.

Definition in Zeile 240 der Datei camera.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
  • hardware/libhardware/include/hardware/ camera.h