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 notification_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)
Zeichen *(* 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 benötigt wird.

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 läuft oder nicht, diese Funktion setzt 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 Gruppe 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 werden. Kamera-HAL-Clients dürfen nach dem Aufrufen von disableMsgType(CAMERA_MSG_VIDEO_FRAME) keinen Videoaufzeichnungsframe ändern/auf ihn 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 nehmen alle einen msg_type, der eine Bitmaske der Nachrichten ist, die in include/ui/Camera.h definiert sind. 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 ihr mit put_parameters 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)

Abfrage, ob eine Nachricht oder eine Gruppe von Nachrichten aktiviert ist. Beachten Sie, dass dies als UND funktioniert, wenn eine der abgefragten Nachrichten ausgeschaltet ist, wird dies falsch 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 *)

Die Kamera-HAL verwendet ihren 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 Aufzeichnungsrahmen frei.

Es liegt in der Verantwortung des Kamera-HAL-Clients, von der Kamera-HAL gesendete Videoaufzeichnungsframes freizugeben, bevor die Kamera-HAL einen Aufruf von disableMsgType(CAMERA_MSG_VIDEO_FRAME) empfängt. Nachdem sie den Aufruf von disableMsgType(CAMERA_MSG_VIDEO_FRAME) empfangen hat, liegt es in der Verantwortung der Kamera-HAL, den Lebenszyklus der Videoaufzeichnungsframes 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 notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory, void *user)

Stellen Sie die Benachrichtigungs- und Datenrückrufe ein

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 irgendein 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 Vorschauframes 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 aufgezeichnetes Bild verfügbar ist, wird eine CAMERA_MSG_VIDEO_FRAME-Nachricht mit dem entsprechenden Rahmen gesendet. Jeder aufgezeichnete Frame 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) aufruft, liegt es in der Verantwortung der Kamera-HAL, den Lebenszyklus der Videoaufzeichnungsframes zu verwalten, und der Client darf keine Videoaufzeichnungsframes ändern/auf diese 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 Aufzeichnungssitzung gesendet werden. Wenn es nicht aufgerufen wird, speichert das HAL-Standardverhalten der Kamera echte YUV-Daten in den Videopuffern.

Diese Methode sollte vor startRecording() aufgerufen werden, um effektiv zu sein.

Wenn Metadaten in den Videopuffern gespeichert sind, ist es Sache des Empfängers der Videopuffer, den Inhalt zu interpretieren und die eigentlichen Bilddaten mit Hilfe der Metadaten im Puffer 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 Frame-Daten direkt an den Video-Encoder zu übergeben, da die Menge der unkomprimierten Frame-Daten sehr groß sein kann, wenn das Video groß ist.

Parameter
ermöglichen wenn wahr, 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 bei 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