Riferimento alla struttura camera_device_ops
#include < camera.h >
Descrizione dettagliata
Documentazione sul campo
int(* auto_focus)(struct camera_device *) |
int(* cancel_auto_focus)(struct camera_device *) |
Annulla la funzione di messa a fuoco automatica. Se la messa a fuoco automatica è ancora in corso, questa funzione la annullerà. Sia che la messa a fuoco automatica sia in corso o meno, questa funzione riporterà la posizione di messa a fuoco al valore predefinito. Se la fotocamera non supporta la messa a fuoco automatica, questa operazione non è consentita.
int(* cancel_picture)(struct camera_device *) |
void(*disable_msg_type)(struct camera_device *, int32_t msg_type) |
Disabilita un messaggio o una serie di messaggi.
Una volta ricevuta una chiamata a DisableMsgType(CAMERA_MSG_VIDEO_FRAME), l'HAL della telecamera non deve fare affidamento sul proprio client per chiamare releaseRecordingFrame() per rilasciare i fotogrammi di registrazione video inviati dall'HAL della telecamera prima e dopo la chiamata DisableMsgType(CAMERA_MSG_VIDEO_FRAME). I client HAL della fotocamera non devono modificare/accedere ad alcun frame di registrazione video dopo aver chiamato DisableMsgType(CAMERA_MSG_VIDEO_FRAME).
int(* dump)(struct camera_device *, int fd) |
void(* abilita_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(* anteprima_enabled)(struct camera_device *) |
void(* put_parameters)(struct camera_device *, char *) |
L'HAL della fotocamera utilizza la propria memoria per passarci i parametri quando chiamiamo get_parameters. Utilizzare questa funzione per restituire la memoria all'HAL della fotocamera, se put_parameters non è NULL. Se put_parameters è NULL, devi utilizzare free() per liberare la memoria.
int(* registrazione_enabled)(struct camera_device *) |
void(* rilascio)(struct camera_device *) |
void(* release_recording_frame)(struct camera_device *, const void *opaque) |
Rilascia un fotogramma record precedentemente restituito da CAMERA_MSG_VIDEO_FRAME.
È responsabilità del client HAL della fotocamera rilasciare i frame di registrazione video inviati dall'HAL della fotocamera prima che quest'ultimo riceva una chiamata per disabilitare MsgType(CAMERA_MSG_VIDEO_FRAME). Dopo aver ricevuto la chiamata a DisableMsgType(CAMERA_MSG_VIDEO_FRAME), è responsabilità dell'HAL della telecamera gestire il ciclo di vita dei fotogrammi di registrazione video.
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 *) |
Avvia la modalità di registrazione. Quando è disponibile un'immagine da registrare, viene inviato un messaggio CAMERA_MSG_VIDEO_FRAME con il fotogramma corrispondente. Ogni fotogramma di registrazione deve essere rilasciato da un client HAL della fotocamera tramite releaseRecordingFrame() prima che il client chiami DisableMsgType(CAMERA_MSG_VIDEO_FRAME). Dopo che il client chiama DisableMsgType(CAMERA_MSG_VIDEO_FRAME), è responsabilità dell'HAL della telecamera gestire il ciclo di vita dei frame di registrazione video e il client non deve modificare/accedere ad alcun frame di registrazione video.
void(* stop_preview)(struct camera_device *) |
void(* stop_recording)(struct camera_device *) |
int(* store_meta_data_in_buffers)(struct camera_device *, int abilita) |
Richiedi all'HAL della fotocamera di memorizzare metadati o dati YUV reali nei buffer video inviati tramite CAMERA_MSG_VIDEO_FRAME per una sessione di registrazione. Se non viene chiamato, il comportamento HAL predefinito della telecamera consiste nel memorizzare dati YUV reali nei buffer video.
Questo metodo dovrebbe essere chiamato prima di startRecording() per essere efficace.
Se nei buffer video vengono memorizzati metadati, spetta al ricevitore dei buffer video interpretarne il contenuto e trovare i dati effettivi del fotogramma con l'aiuto dei metadati nel buffer. Il modo in cui ciò viene eseguito esula dall'ambito di questo metodo.
Alcuni HAL della fotocamera potrebbero non supportare la memorizzazione dei metadati nei buffer video, ma tutti gli HAL della fotocamera dovrebbero supportare la memorizzazione dei dati YUV reali nei buffer video. Se l'HAL della fotocamera non supporta la memorizzazione dei metadati nei buffer video quando viene richiesto di farlo, è necessario restituire INVALID_OPERATION. È molto utile che l'HAL della fotocamera passi i metadati anziché i dati effettivi del fotogramma direttamente al codificatore video, poiché la quantità dei dati del fotogramma non compresso può essere molto grande se le dimensioni del video sono grandi.
- Parametri
abilitare se true per istruire l'HAL della telecamera a memorizzare i metadati nei buffer video; false per istruire l'HAL della fotocamera a memorizzare dati YUV reali nei buffer video.
- ritorna
- OK in caso di successo.
int(* take_picture)(struct camera_device *) |
La documentazione per questa struttura è stata generata dal seguente file:
- hardware/libhardware/include/hardware/ camera.h