camera_device_ops Strukturreferenz
#include < camera.h >
detaillierte Beschreibung
Felddokumentation
int(* auto_focus)(struct camera_device *) |
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.
int(* cancel_picture)(struct camera_device *) |
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.
int(* dump)(struct camera_device *, int fd) |
void(* enable_msg_type)(struct camera_device *, int32_t msg_type) |
char*(* get_parameters)(struct camera_device *) |
int(* msg_type_enabled)(struct camera_device *, int32_t msg_type) |
int(* Preview_enabled)(struct camera_device *) |
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.
int(* Recording_enabled)(struct camera_device *) |
void(* release)(struct camera_device *) |
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.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
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) |
int(* set_parameters)(struct camera_device *, const char *parms) |
int(* set_preview_window)(struct camera_device *, struct Preview_stream_ops *window) |
int(* start_preview)(struct camera_device *) |
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.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
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.
int(* take_picture)(struct camera_device *) |
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ camera.h