camera_device_ops Yapı Referansı
#include <
camera.h
>
Ayrıntılı Açıklama
Alan Belgeleri
int(* auto_focus)(struct camera_device *) |
Otomatik odağı başlatır. Odak tamamlandığında bildirim geri çağırma rutini CAMERA_MSG_FOCUS ile bir kez çağrılır. Başka bir otomatik odaklama gerekirse autoFocus() tekrar çağrılır.
Tanım, camera.h dosyasının 227. satırı içindedir.
int(* cancel_auto_focus)(struct camera_device *) |
Otomatik odaklama işlevini iptal eder. Otomatik odaklama işlemi devam ediyorsa bu işlev otomatik odaklamayı iptal eder. Otomatik odaklama işlemi devam ediyor olsun veya olmasın bu işlev, odak konumunu varsayılan değere döndürür. Kamera otomatik odaklama özelliğini desteklemiyorsa bu işlem yapılmaz.
Tanım, camera.h dosyasının 235. satırı içindedir.
int(* cancel_picture)(struct camera_device *) |
void(* disable_msg_type)(struct camera_device *, int32_t msg_type) |
Bir mesajı veya mesaj grubunu devre dışı bırakma
disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısı alındıktan sonra kamera HAL'i, disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısından önce ve sonra kamera HAL'i tarafından gönderilen video kaydı karelerini serbest bırakmak için istemcisinin releaseRecordingFrame() işlevini çağırmasına güvenmemelidir. Kamera HAL istemcileri, disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısından sonra hiçbir video kaydı çerçevesini değiştirmemeli/erişmemelidir.
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) |
Bir ileti veya ileti grubunun etkin olup olmadığını sorgulayın. Bu işlemin VE olarak çalıştığını unutmayın. Sorgulanan mesajlardan herhangi biri kapalıysa yanlış değerini döndürür.
Tanımı, camera.h dosyasının 139. satırı içindedir.
int(* preview_enabled)(struct camera_device *) |
Önizleme etkinse true değerini döndürür.
Tanımı, camera.h dosyasının 154. satırı içinde bulabilirsiniz.
void(* put_parameters)(struct camera_device *, char *) |
Kamera HAL'i, 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'e 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.
Tanımı, camera.h dosyasının 265. satırı içindedir.
int(* recording_enabled)(struct camera_device *) |
Kayıt etkinse doğru değerini döndürür.
Tanımı, camera.h dosyasının 208. satırı içinde bulabilirsiniz.
void(* release)(struct camera_device *) |
void(* release_recording_frame)(struct camera_device *, const void *opaque) |
Daha önce CAMERA_MSG_VIDEO_FRAME tarafından döndürülen bir kayıt karesini yayınlayın.
Kamera HAL istemcisinin, kamera HAL'i disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısı almadan önce kamera HAL tarafından gönderilen video kaydı çerçevelerini yayınlaması gerekir. disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısını aldıktan sonra video kaydı çerçevelerinin yaşam döngüsünü yönetmek kamera HAL'inin sorumluluğundadır.
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) |
Bildirim ve veri geri çağırma işlevlerini ayarlama
Tanımı, camera.h dosyasının 105. satırı içindedir.
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 *) |
Önizleme modunu başlatın.
Tanımı, camera.h dosyasının 144. satırı içindedir.
int(* start_recording)(struct camera_device *) |
Kayıt modunu başlatın. Kayıt görüntüsü mevcut olduğunda, ilgili çerçeveyle birlikte bir CAMERA_MSG_VIDEO_FRAME mesajı gönderilir. İstemci, disableMsgType(CAMERA_MSG_VIDEO_FRAME) çağrısını yapmadan önce her kayıt karesi, bir kamera HAL istemcisi tarafından releaseRecordingFrame() aracılığıyla serbest bırakılmalıdır. İstemci, disableMsgType(CAMERA_MSG_VIDEO_FRAME) işlevini çağırdıktan sonra video kaydı çerçevelerinin yaşam döngüsünü yönetmek kamera HAL'inin sorumluluğundadır ve istemci hiçbir video kaydı çerçevesini değiştirmemeli/erişmemelidir.
Tanım, şu dosyanın 198. satırı içindedir: camera.h .
void(* stop_preview)(struct camera_device *) |
Daha önce başlatılmış bir önizlemeyi durdurabilirsiniz.
Tanımı, camera.h dosyasının 149. satırı içindedir.
void(* stop_recording)(struct camera_device *) |
int(* store_meta_data_in_buffers)(struct camera_device *, int enable) |
Kamera HAL'den, 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.
Bu yöntemin etkili olabilmesi için startRecording() yönteminden önce çağrılması gerekir.
Meta veriler video arabelleklerinde depolanıyorsa içeriği yorumlamak ve arabellekteki meta verilerin yardımıyla gerçek kare verilerini bulmak, video arabelleklerini alan tarafa bağlıdır. Bu işlemin nasıl yapıldığı bu yöntemin kapsamı dışındadır.
Bazı kamera HAL'leri, meta verilerin video arabelleklerinde depolanmasını desteklemeyebilir ancak tüm kamera HAL'leri, gerçek YUV verilerinin video arabelleklerinde depolanmasını desteklemelidir. Kamera HAL'i, meta verilerin video arabelleklerinde depolanması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, kamera HAL'inin doğrudan video kodlayıcıya gerçek kare verileri yerine meta verileri iletmesi çok yararlıdır.
- Parametreler
-
etkinleştir Kamera HAL'ine meta verileri video arabelleklerinde depolaması talimatını vermek için doğru, kamera HAL'ine gerçek YUV verilerini video arabelleklerinde depolaması talimatını vermek için yanlış değerini girin.
- İlerlemeler
- Başarılı olduğunda OK.
int(* take_picture)(struct camera_device *) |
Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ camera.h