Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

camera_module Yapı Referansı

camera_module Yapı Referansı

#include < camera_common.h >

Veri alanları

hw_module_t yaygın
int(* get_number_of_cameras )(void)
int(* get_camera_info )(int camera_id, struct camera_info *info)
int(* set_callbacks )(const camera_module_callbacks_t *geri aramalar)
geçersiz(* get_vendor_tag_ops )(vendor_tag_ops_t *işlemler)
int(* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
int(* set_torch_mode )(const char *camera_id, bool etkin)
int(* başlangıç ​​)()
geçersiz * saklıdır [5]

Detaylı Açıklama

camera_common.h dosyasının 646 satırındaki tanım.

Saha Dokümantasyonu

Kamera modülünün ortak yöntemleri. Bu, camera_module öğesinin ilk üyesi olmalıdır , çünkü bu yapının kullanıcıları, hw_module_t öğesinin bir camera_module başvurduğu bilinen bağlamlarda camera_module işaretçisine bir hw_module_t gönderecektir .

common.methods->open for camera_module için dönüş değerleri şunlardır:

0: Kamera cihazı başarıyla açıldığında.

-ENODEV: Dahili bir hata nedeniyle kamera cihazı açılamıyor.

-EINVAL: Giriş argümanları geçersiz, yani kimlik geçersiz ve/veya modül geçersiz.

-EBUSY: Bu kamera kimliği için kamera cihazı zaten açıldı (bu yöntem veya open_legacy kullanılarak), cihazın HAL sürümü ne olursa olsun, açıldı.

-EUSERS: Aynı anda açılabilen maksimum kamera cihazı sayısı, bu yöntemle veya open_legacy yöntemiyle zaten açıldı.

common.methods->open'dan gelen tüm diğer dönüş değerleri -ENODEV olarak değerlendirilecektir.

camera_common.h dosyasının 674 satırındaki tanım.

int(* get_camera_info)(int camera_id, struct camera_info *info)

get_camera_info:

Belirli bir kamera cihazı için statik kamera bilgilerini döndürün. Bu bilgiler bir kamera cihazı için değişmeyebilir.

Dönüş değerleri:

0: Başarılı bir operasyonda

-ENODEV: Dahili bir hata nedeniyle bilgi sağlanamıyor.

-EINVAL: Giriş argümanları geçersiz, yani kimlik geçersiz ve/veya modül geçersiz.

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_2_4 veya üstü:

Bir kameranın bağlantısı kesildiğinde kamera kimliği geçersiz olur. Bu yöntemi bu geçersiz kamera kimliğiyle çağırmak -EINVAL ve NULL kamera statik meta verilerini ( camera_info.static_camera_characteristics ) alır.

camera_common.h dosyasının 727. satırındaki tanım.

int(* get_number_of_cameras)(void)

get_number_of_cameras:

Kamera modülü aracılığıyla erişilebilen kamera cihazlarının sayısını döndürür. Kamera cihazları 0'dan N-1'e kadar numaralandırılmıştır; burada N, bu çağrı tarafından döndürülen değerdir. open() için kamera cihazının adı, bir dizgeye dönüştürülen sayıdır. Yani, kamera kimliği 0 için "0", kamera kimliği 1 için "1".

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_2_3 veya altı:

Buradaki değer statik olmalıdır ve bu yönteme yapılan ilk çağrıdan sonra değiştirilemez.

CAMERA_MODULE_API_VERSION_2_4 veya üstü:

Buradaki değer statik olmalı ve yalnızca CAMERA_FACING_BACK veya CAMERA_FACING_FRONT kameraya dönük değerlere ( camera_info.facing ) sahip yerleşik kameraları saymalıdır. HAL, harici kameraları ( camera_info.facing == CAMERA_FACING_EXTERNAL) bu çağrının dönüş değerine dahil etmemelidir. Çerçeveler, harici kameraların sayısını yönetmek için camera_device_status_change geri aramasını kullanır.

camera_common.h dosyasının 701 satırındaki tanım.

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Satıcı uzantısı meta veri etiketi bilgilerini sorgulamak için yöntemler alın. HAL, tüm satıcı etiketi işlem yöntemlerini doldurmalı veya hiçbir satıcı etiketi tanımlanmamışsa işlemleri değiştirmeden bırakmalıdır.

Burada kullanılan satıcı_tag_ops yapısı şurada tanımlanmıştır: system/media/camera/include/system/vendor_tags.h

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: HAL modülü tarafından sağlanmadı. Çerçeve bu işlevi çağırmayabilir.

CAMERA_MODULE_API_VERSION_2_2: Çerçeve tarafından çağrılmak için geçerlidir.

camera_common.h dosyasının 778 satırındaki tanım.

int(* başlangıç)()

içinde:

Bu yöntem, kamera HAL kitaplığı başarıyla yüklendikten hemen sonra, diğer yöntemler çağrılmadan önce kamera hizmeti tarafından çağrılır. Başlatma gerekmiyorsa, HAL modülü tarafından NULL olarak bırakılabilir.

Başlatma ve diğer tek seferlik işlemleri gerçekleştirmek için HAL uygulamaları tarafından kullanılabilir.

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL modülü tarafından sağlanmaz. Framework bu işlevi çağırmaz.

CAMERA_MODULE_API_VERSION_2_4: NULL değilse, HAL modülü yüklendikten sonra, başka bir HAL modülü yöntemi çağrılmadan önce her zaman çerçeve tarafından çağrılır.

Dönüş değerleri:

0: Başarılı bir işlemde.

-ENODEV: Dahili bir hata nedeniyle başlatma tamamlanamıyor. HAL'ın işlevsel olmayan bir durumda olduğu varsayılmalıdır.

camera_common.h dosyasının 909 satırındaki tanım.

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

open_legacy:

Bu kamera HAL modülü tarafından birden fazla cihaz HAL API sürümü destekleniyorsa, belirli bir eski kamera HAL cihazını açın. Örneğin, kamera modülü aynı kamera kimliği için hem CAMERA_DEVICE_API_VERSION_1_0 hem de CAMERA_DEVICE_API_VERSION_3_2 cihaz API'sini destekliyorsa, çerçeve kamera cihazını CAMERA_DEVICE_API_VERSION_1_0 cihazı olarak açmak için bu işlevi çağırabilir.

Bu isteğe bağlı bir yöntemdir. Bir Camera HAL modülünün, aygıt başına birden fazla aygıt HAL sürümünü desteklemesi gerekmez ve bu tür modüller, bu yönteme yapılan tüm çağrılar için -ENOSYS döndürebilir. Desteklenmeyen tüm eski HAL aygıtı API sürümleri için -EOPNOTSUPP döndürebilir. Yukarıdaki durumlar meydana geldiğinde, bunun yerine çerçeve tarafından normal open() yöntemi (common.methods->open) kullanılacaktır.

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: HAL modülü tarafından sağlanmaz. Framework bu işlevi çağırmaz.

CAMERA_MODULE_API_VERSION_2_3: Çerçeve tarafından çağrılmak için geçerlidir.

Dönüş değerleri:

0: Kamera cihazı başarıyla açıldığında.

-ENOSYS Bu yöntem desteklenmiyor.

-EOPNOTSUPP: İstenen HAL sürümü bu yöntem tarafından desteklenmiyor.

-EINVAL: Giriş argümanları geçersiz, yani kimlik geçersiz ve/veya modül geçersiz.

-EBUSY: Bu kamera kimliği için kamera cihazı zaten açılmıştı (bu yöntem veya common.methods->open yöntemi kullanılarak), cihazın HAL sürümü ne olursa olsun açıldı.

-EUSERS: Aynı anda açılabilen maksimum kamera cihazı sayısı, bu yöntemle veya common.methods->open yöntemiyle zaten açılmıştır.

camera_common.h dosyasının 824 satırındaki tanım.

geçersiz* saklıdır[5]

camera_common.h dosyasının 912 satırındaki tanım.

int(* set_callbacks)(const camera_module_callbacks_t *geri aramalar)

set_callbacks:

Asenkron kamera modülü olaylarının çerçevesini bilgilendirmek için HAL modülüne geri arama işlevi işaretçileri sağlayın. Çerçeve, ilk kamera HAL modülü yüklemesinden sonra, get_number_of_cameras() yöntemi ilk kez çağrıldıktan sonra ve modüle yapılan diğer çağrılardan önce bu işlevi çağırır.

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

HAL modülü tarafından sağlanmaz. Çerçeve bu işlevi çağırmayabilir.

CAMERA_MODULE_API_VERSION_2_1:

Çerçeve tarafından çağrılmak için geçerlidir.

Dönüş değerleri:

0: Başarılı bir operasyonda

-ENODEV: Dahili bir hata nedeniyle işlem tamamlanamıyor.

-EINVAL: Giriş argümanları geçersiz, yani geri aramalar boş

camera_common.h dosyasının 758. satırındaki tanım.

int(* set_torch_mode)(const char *camera_id, bool etkin)

set_torch_mode:

Belirli bir kamera kimliğiyle ilişkili flaş ünitesinin meşale modunu açın veya kapatın. İşlem başarılı olursa, HAL, yeni durumla camera_module_callbacks.torch_mode_status_change() işlevini çağırarak çerçeve torç durumunu bildirmelidir.

Kamera cihazının flaş ünitesine erişme önceliği daha yüksektir. Bir kamera cihazını açmak için open() çağrıldığı gibi herhangi bir kaynak çakışması olduğunda, HAL modülü, camera_module_callbacks.torch_mode_status_change() aracılığıyla çerçeveye fener modunun kapatıldığını ve fener modu durumunun TORCH_MODE_STATUS_NOT_AVAILABLE olduğunu bildirmelidir. Torç modunu açmak için kaynaklar tekrar kullanılabilir olduğunda, HAL modülü, set_torch_mode() öğesinin çağrılması için meşale modu durumunun TORCH_MODE_STATUS_AVAILABLE_OFF olduğunu camera_module_callbacks.torch_mode_status_change () aracılığıyla çerçeveye bildirmelidir.

Çerçeve, bir flaş ünitesinin torç modunu açmak için set_torch_mode() öğesini çağırdığında, HAL aynı anda birden fazla torç modunu açık tutamazsa, HAL önceki bir set_torch_mode() çağrısı tarafından açılmış olan torç modunu kapatmalı ve çerçeveyi bilgilendirmelidir. o flaş ünitesinin torç modu durumunun TORCH_MODE_STATUS_AVAILABLE_OFF olduğunu.

Sürüm bilgileri (camera_module_t.common.module_api_version'a göre):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL modülü tarafından sağlanmaz. Framework bu işlevi çağırmaz.

CAMERA_MODULE_API_VERSION_2_4: Çerçeve tarafından çağrılmak için geçerlidir.

Dönüş değerleri:

0: Başarılı bir işlemde.

-ENOSYS: Kamera cihazı bu işlemi desteklemiyor. Yalnızca android.flash.info.available false olduğunda döndürülür.

-EBUSY: Kamera cihazı zaten kullanımda.

-EUSERS: El feneri modunu açmak için gereken kaynaklar mevcut değil, çünkü genellikle diğer kamera cihazları, flaş ünitesini kullanmayı mümkün kılmak için kaynakları tutuyor.

-EINVAL: camera_id geçersiz.

camera_common.h dosyasının 878 satırındaki tanım.


Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur: