Camera_device_ops Yapı Referansı
#include < camera.h >
Veri alanları | |
int(* | set_preview_window )(struct kamera_device *, struct önizleme_stream_ops *pencere) |
geçersiz(* | 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) |
geçersiz(* | active_msg_type )(struct kamera_device *, int32_t msg_type) |
geçersiz(* | devre dışı_msg_type )(struct kamera_device *, int32_t msg_type) |
int(* | msg_type_enabled )(struct kamera_device *, int32_t msg_type) |
int(* | start_preview )(struct kamera_device *) |
geçersiz(* | stop_preview )(struct kamera_device *) |
int(* | önizleme_enabled )(struct kamera_device *) |
int(* | Store_meta_data_in_buffers )(struct kamera_device *, int etkinleştir) |
int(* | start_recording )(struct kamera_device *) |
geçersiz(* | stop_recording )(struct kamera_device *) |
int(* | kayıt_enabled )( kamera_device'ı yapılandır *) |
geçersiz(* | Release_recording_frame )(struct kamera_device *, const void *opaque) |
int(* | auto_focus )(struct kamera_device *) |
int(* | cancel_auto_focus )( maker_device *) |
int(* | take_picture )(struct kamera_device *) |
int(* | cancel_picture )(struct kamera_device *) |
int(* | set_parameters )(struct kamera_device *, const char *parms) |
karakter *(* | get_parameters )(struct kamera_device *) |
geçersiz(* | put_parameters )(struct kamera_device *, char *) |
int(* | send_command )(struct kamera_device *, int32_t cmd, int32_t arg1, int32_t arg2) |
geçersiz(* | yayın )(struct kamera_device *) |
int(* | dump )(struct kamera_device *, int fd) |
Detaylı Açıklama
Saha Dokümantasyonu
int(* auto_focus)(struct kamera_device *) |
int(* cancel_auto_focus)(struct kamera_device *) |
Otomatik odaklama işlevini iptal eder. Otomatik odaklama hala devam ediyorsa bu işlev onu iptal edecektir. Otomatik odaklama devam etse de etmese de, bu işlev odak konumunu varsayılana döndürecektir. Kamera otomatik odaklamayı desteklemiyorsa bu işlem yapılmaz.
int(* cancel_picture)(struct kamera_device *) |
void(* devre dışı_msg_type)(struct kamera_device *, int32_t msg_type) |
Bir mesajı veya bir dizi mesajı devre dışı bırakın.
DisableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısı alındıktan sonra kamera HAL, DisableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısından önce ve sonra kameral HAL tarafından gönderilen video kayıt çerçevelerini serbest bırakmak için ReleaseRecordingFrame() çağrısını yapmak üzere istemcisine güvenmemelidir. Kamera HAL istemcileri,disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrıldıktan sonra herhangi bir video kayıt karesini değiştirmemeli/erişmemelidir.
int(* dump)(struct kamera_device *, int fd) |
void(* active_msg_type)(struct kamera_device *, int32_t msg_type) |
char*(* get_parameters)(struct kamera_device *) |
int(* msg_type_enabled)(struct kamera_device *, int32_t msg_type) |
int(* önizleme_enabled)(struct kamera_device *) |
void(* put_parameters)(struct kamera_device *, char *) |
HAL kamerası, get_parameters'ı çağırdığımızda parametreleri bize iletmek için kendi belleğini kullanır. put_parameters NULL değilse, belleği kamera HAL'sine geri döndürmek için bu işlevi kullanın. put_parameters NULL ise, belleği serbest bırakmak için free() işlevini kullanmanız gerekir.
int(* kayıt_enabled)(struct kamera_device *) |
void(* yayın)(struct kamera_device *) |
void(*release_recording_frame)(struct kamera_device *, const void *opaque) |
Daha önce CAMERA_MSG_VIDEO_FRAME tarafından döndürülen bir kayıt çerçevesini serbest bırakın.
Kamera HAL'i, MsgType'ı devre dışı bırakmak için bir çağrı almadan önce, kamera HAL'i tarafından gönderilen video kayıt çerçevelerini serbest bırakmak kamera HAL istemcisinin sorumluluğundadır(CAMERA_MSG_VIDEO_FRAME). DisableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısını aldıktan sonra, video kayıt çerçevelerinin yaşam döngüsünü yönetmek kamera HAL'nin sorumluluğundadır.
int(* send_command)(struct kamera_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 *kullanıcı) |
int(* set_parameters)(struct kamera_device *, const char *parms) |
int(* set_preview_window)(struct kamera_device *, struct önizleme_stream_ops *window) |
int(* start_preview)(struct kamera_device *) |
int(* start_recording)(struct kamera_device *) |
Kayıt modunu başlatın. Bir kayıt görüntüsü mevcut olduğunda, karşılık gelen çerçeveyle birlikte bir CAMERA_MSG_VIDEO_FRAME mesajı gönderilir. Her kayıt karesi, istemcinindisableMsgType(CAMERA_MSG_VIDEO_FRAME) öğesini çağırmadan önce, bir kamera HAL istemcisi tarafından,releaseRecordingFrame() aracılığıyla serbest bırakılması gerekir. İstemci, devre dışı bırakmaMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısını yaptıktan sonra, video kayıt çerçevelerinin yaşam döngüsünü yönetmek kamera HAL'nin sorumluluğundadır ve istemci, herhangi bir video kayıt çerçevesini değiştirmemeli/erişmemelidir.
void(* stop_preview)(struct kamera_device *) |
void(* stop_recording)(struct kamera_device *) |
int(*store_meta_data_in_buffers)(struct kamera_device *, int etkinleştir) |
Kamera HAL'sinden, bir kayıt oturumu için CAMERA_MSG_VIDEO_FRAME aracılığıyla gönderilen video arabelleklerinde meta verileri veya gerçek YUV verilerini depolamasını isteyin. Çağrılmazsa, varsayılan kamera HAL davranışı, gerçek YUV verilerini video arabelleklerinde depolamaktır.
Etkili olabilmesi için bu yöntemin startRecording() işleminden önce çağrılması gerekir.
Meta veriler video arabelleklerinde depolanıyorsa, içerikleri yorumlamak ve arabellekteki meta veriler yardımıyla gerçek çerçeve verilerini bulmak video arabelleklerinin alıcısına kalmıştır. Bunun nasıl yapıldığı bu yöntemin kapsamı dışındadır.
Bazı kamera HAL'leri, meta verilerinin video arabelleklerinde saklanmasını desteklemeyebilir, ancak tüm kamera HAL'leri, gerçek YUV verilerinin video arabelleklerinde saklanmasını desteklemelidir. Kamera HAL'si, istendiğinde meta verilerinin video arabelleklerinde saklanmasını desteklemiyorsa, INVALID_OPERATION döndürülmelidir. Video boyutu büyükse sıkıştırılmamış kare verilerinin miktarı çok büyük olabileceğinden, gerçek kare verileri yerine meta verileri doğrudan video kodlayıcıya iletmek kamera HAL'si için çok kullanışlıdır.
- Parametreler
olanak vermek true ise, kamera HAL'sine meta verileri video arabelleklerinde depolaması talimatını vermek için; false kamera HAL'sine gerçek YUV verilerini video arabelleklerinde saklaması talimatını vermek için.
- İadeler
- Başarı konusunda tamam.
int(* take_picture)(struct kamera_device *) |
Bu yapıya ilişkin belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/include/donanım/ kamera.h