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
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 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.
int(* cancel_picture)(struct camera_device *) |
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.
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 *) |
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.
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 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.
int(* send_command)(struct camera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
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) |
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 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.
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 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.
int(* take_picture)(struct camera_device *) |
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ camera.h