Camera_info Yapı Referansı

Camera_info Yapı Referansı

#include < camera_common.h >

Veri alanları

int karşı karşıya
int oryantasyon
uint32_t cihaz_versiyonu
const kamera_metadata_t * static_camera_characteristics
int kaynak_maliyeti
karakter ** çakışan_devices
size_t çakışan_devices_length

Detaylı Açıklama

Camera_common.h dosyasının 161. satırındaki tanım.

Saha Dokümantasyonu

char** çakışan_devices

Bu kamera cihazı kullanımdayken aynı anda açılamayacak diğer cihazları gösteren, NULL ile sonlandırılmış dizeler olarak temsil edilen bir kamera cihazı kimlikleri dizisi.

Bu alan, bu kamera cihazının birkaç başka kamera cihazının birleşimi olduğunu veya eş zamanlı kullanımı engelleyen donanım bağımlılıklarına sahip olduğunu belirtmek için kullanılmak üzere tasarlanmıştır. Herhangi bir bağımlılık yoksa, bunu belirtmek için bu alanda bir NULL döndürülebilir.

Kamera hizmeti, bu kamera cihazı açıkken bu listedeki cihazlardan hiçbirini asla aynı anda açmayacaktır.

Bu alanda işaret edilen dizeler kamera hizmeti tarafından temizlenmez ve bu cihaz fişe takılıyken kalmalıdır.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_2_3 veya daha düşük:

Geçerli değil. NULL olduğu varsayılabilir. Bu alanı okumayın.

CAMERA_MODULE_API_VERSION_2_4 veya üzeri:

Her zaman geçerlidir.

Camera_common.h dosyasının 404. satırındaki tanım.

size_t çakışan_devices_length

Çakışan_devices alanında belirtilen dizinin uzunluğu.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_2_3 veya daha düşük:

Geçerli değil. 0 kabul edilebilir. Bu alanı okumayın.

CAMERA_MODULE_API_VERSION_2_4 veya üzeri:

Her zaman geçerlidir.

Camera_common.h dosyasının 419. satırındaki tanım.

uint32_t cihaz_versiyonu

Camera_device_t.common.version'ın değeri.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_1_0:

Geçerli değil. CAMERA_DEVICE_API_VERSION_1_0 olduğu varsayılabilir. Bu alanı okumayın.

CAMERA_MODULE_API_VERSION_2_0 veya üzeri:

Her zaman geçerli

Camera_common.h dosyasının 219. satırındaki tanım.

iç içe bakan

Kameranın baktığı yön. Kameraya dönük tanımlar için system/core/include/system/camera.h adresine bakın.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_2_3 veya daha düşük:

CAMERA_FACING_BACK veya CAMERA_FACING_FRONT olmalıdır.

CAMERA_MODULE_API_VERSION_2_4 veya üzeri:

CAMERA_FACING_BACK, CAMERA_FACING_FRONT veya CAMERA_FACING_EXTERNAL olmalıdır.

Camera_common.h dosyasının 177. satırındaki tanım.

dahili yönelim

Kamera görüntüsünün yönü. Değer, kamera görüntüsünün ekranda doğal yönünde doğru şekilde görünmesi için saat yönünde döndürülmesi gereken açıdır. 0, 90, 180 veya 270 olmalıdır.

Örneğin, bir cihazın doğal olarak uzun bir ekrana sahip olduğunu varsayalım. Arkaya bakan kamera sensörü yatay olarak monte edilmiştir. Ekrana bakıyorsunuz. Kamera sensörünün üst tarafı ekranın sağ kenarı ile doğal yönde hizalanmışsa değer 90 olmalıdır. Öne bakan kamera sensörünün üst tarafı ekranın sağ kenarı ile hizalanmışsa değer 90 olmalıdır. 270 olsun.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_2_3 veya daha düşük:

Tüm Camera_module sürümlerinde geçerlidir.

CAMERA_MODULE_API_VERSION_2_4 veya üzeri:

Kameraya dönük olan CAMERA_FACING_BACK veya CAMERA_FACING_FRONT ise geçerlidir, kameraya dönük olan CAMERA_FACING_EXTERNAL ise geçerli değildir.

Camera_common.h dosyasının 202. satırındaki tanım.

int kaynak_maliyeti

Bu kamerayı kullanmanın toplam kaynak "maliyeti", [0, 100] aralığında bir tamsayı değeri olarak temsil edilir; burada 100, kamera alt sisteminin sınırlayıcı darboğazı olan paylaşılan kaynağın toplam kullanımını temsil eder. Bu çok kaba bir tahmin olabilir ve birden fazla uygulamanın, kamera hizmeti tarafından tanıtılan farklı kameraları aynı anda açmasına ne zaman izin verilmeyeceğini belirlemek için kamera hizmetine bir ipucu olarak kullanılır.

Kamera hizmeti, bu kameraların kaynak maliyetlerinin toplamının <= 100 olduğu durumlarda, HAL tarafından sunulan herhangi bir kamera cihazı kombinasyonunu eşzamanlı olarak açabilmeli ve kullanabilmelidir. Maliyeti belirlemek için, her kamera cihazının yapılandırılmış ve çalışır durumda olduğu varsayılmalıdır. kamera meta verileri aracılığıyla söz konusu cihaz için sunulan yapılandırma ayarlarında mevcut olan maksimum kaynak tüketen kare hızı ve akış boyutu ayarlarında.

Kamera hizmeti yine de toplam kaynak maliyeti > 100 olan kamera cihazı kombinasyonlarını eşzamanlı olarak açmayı deneyebilir. Bu başarılı veya başarısız olabilir. Bu başarılı olursa, birden fazla açık cihaza sahip olmaktan kaynaklanan kaynak kısıtlamaları nedeniyle desteklenmeyen konfigürasyon kombinasyonları, yapılandırma çağrıları sırasında başarısız olacaktır. Toplam kaynak maliyeti <= 100 ise, açma ve yapılandırma, tek açık kamera cihazı olan bir cihaz için normalde başarılı olacak herhangi bir akış yapılandırma ayarı veya diğer cihaz özellikleri için hiçbir zaman başarısız olmamalıdır.

Bu alan, diğer uygulamalar diğer kamera cihazlarını kullanırken arka plan uygulamalarının bu kamera cihazını kullanmasına izin verilip verilmeyeceğini belirlemek için kullanılacaktır. Not: Kamera hizmeti birden fazla uygulamanın aynı kamera cihazını aynı anda açmasına asla izin vermeyecektir.

Örnek kullanım durumları:

Eski. 1: Kamera Cihazı 0 = Arka Kamera Kamera Cihazı 1 = Ön Kamera

  • Her iki kamera cihazının kullanılması, sınırlı ISP bant genişliği nedeniyle büyük bir kare hızında yavaşlamaya neden olur.

Yapılandırma:

Kamera Cihazı 0 - kaynak_maliyet = 51 çakışan_devices = boş Kamera Cihazı 1 - kaynak_maliyet = 51 çakışan_devices = boş

Sonuç:

Kaynak maliyetlerinin toplamı > 100 olduğundan, daha yüksek öncelikli bir uygulamanın iki cihazdan biri açıksa, kamera hizmeti daha düşük öncelikli hiçbir uygulamanın her iki cihazı da açmasına izin vermez. Daha düşük öncelikli bir uygulama, daha sonra yüksek öncelikli bir uygulamanın açmaya çalıştığı bir cihazı kullanıyorsa, düşük öncelikli uygulama cihazın bağlantısını kesmek zorunda kalacaktır.

En yüksek önceliğe sahip uygulama seçerse, yine de her iki cihazı da açmayı deneyebilir (çünkü bu cihazlar çakışan_devices alanlarında çakışan olarak listelenmez), ancak bu cihazların kullanımı açma veya yapılandırma çağrılarında başarısız olabilir.

Eski. 2: Kamera Cihazı 0 = Sol Arka Kamera Kamera Cihazı 1 = Sağ Arka Kamera Kamera Cihazı 2 = Cihaz 0 ve 1 tarafından kullanılan hem sağ hem de sol arka kamera sensörlerini kullanan birleşik stereo kamera ve 1 Kamera Cihazı 3 = Ön Kamera

  • Donanım kısıtlamaları nedeniyle aynı anda en fazla iki kamera açık olabilir. Birleşik stereo kamera hiçbir zaman iki arka kamera cihazından (cihaz 0, 1) herhangi biriyle aynı anda kullanılamaz ve genellikle ön kamerayla (cihaz 3) aynı anda kullanmak çok fazla bant genişliği gerektirir.

Yapılandırma:

Kamera Cihazı 0 - kaynak_maliyeti = 50 çakışan_devices = { 2 } Kamera Cihazı 1 - kaynak_maliyeti = 50 çakışan_devices = { 2 } Kamera Cihazı 2 - kaynak_maliyeti = 100 çakışan_devices = { 0, 1 } Kamera Cihazı 3 - kaynak_maliyeti = 50 çakışan_devices = null

Sonuç:

Çakışan_devices alanlarını temel alan kamera hizmeti, aşağıdaki açık cihaz gruplarına hiçbir zaman izin verilmeyeceğini garanti eder: { 1, 2 }, { 0, 2 }.

Resource_cost alanlarına bağlı olarak, eğer yüksek öncelikli bir ön plan uygulaması kamera cihazı 0'ı kullanıyorsa, bir arka plan uygulamasının kamera cihazı 1 veya 3'ü açmasına izin verilir (ancak ön plandaki uygulama başka bir cihazı açarsa bağlantıyı yeniden kesmek zorunda kalır).

En yüksek öncelikli uygulama yine de 0, 2 ve 3 numaralı cihazları aynı anda açmaya çalışabilir, ancak HAL bu kombinasyon için çağrıları açmada veya yapılandırmada başarısız olabilir.

Eski. 3: Kamera Cihazı 0 = Arka Kamera Kamera Cihazı 1 = Ön Kamera Kamera Cihazı 2 = Cihaz 1 ile aynı sensörü kullanan, ancak yalnızca düşük güç modunda kullanılabilen görüntü akışı çözünürlüklerini açığa çıkaran Düşük Güçlü Ön Kamera

  • Paylaşılan fiziksel sensör nedeniyle her iki ön kameranın (cihaz 1, 2) aynı anda kullanılması imkansızdır. Donanım sınırlamaları nedeniyle bazı akış yapılandırmaları için arka ve "yüksek güçlü" ön kameranın (cihaz 1) kullanılması imkansız olabilir, ancak özel olarak ayrılmış donanıma sahip olduğundan "düşük güçlü" ön kamera seçeneği her zaman kullanılabilir.

    Yapılandırma:

    Kamera Cihazı 0 - kaynak_maliyeti = 100 çakışan_devices = null Kamera Cihazı 1 - kaynak_maliyeti = 100 çakışan_devices = { 2 } Kamera Cihazı 2 - kaynak_maliyeti = 0 çakışan_devices = { 1 } Sonuç:

    Çakışan_devices alanlarını temel alan kamera hizmeti, aşağıdaki açık cihaz gruplarına hiçbir zaman izin verilmeyeceğini garanti eder: { 1, 2 }.

    Resource_cost alanlarına bağlı olarak, yalnızca en yüksek öncelikli uygulama hem 0 hem de 1 numaralı cihazı aynı anda açmaya çalışabilir. Daha yüksek öncelikli bir uygulama cihaz 1 veya 2'yi kullanmıyorsa, düşük öncelikli bir arka plan uygulaması cihaz 2'yi açabilir (ancak daha sonra yüksek öncelikli bir uygulama cihaz 1 veya 2'yi açarsa bağlantıyı kesmek zorunda kalacaktır).

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_2_3 veya daha düşük:

Geçerli değil. 100 kabul edilebilir. Bu alanı okumayın.

CAMERA_MODULE_API_VERSION_2_4 veya üzeri:

Her zaman geçerlidir.

Camera_common.h dosyasının 376. satırındaki tanım.

const kamera_metadata_t * static_camera_characteristics

System/media/camera/docs/docs.html dosyasında belirtilen tüm statik kamera meta verilerini içeren kameranın sabit özellikleri. Bu, sıralanmış bir meta veri arabelleği olmalıdır ve arayan kişi tarafından değiştirilemez veya serbest bırakılamaz. İşaretçi, kamera modülünün kullanım ömrü boyunca geçerli kalmalıdır ve içindeki değerler, get_camera_info() tarafından döndürüldükten sonra değişmeyebilir.

Sürüm bilgileri (camera_module_t.common.module_api_version'a dayalı):

CAMERA_MODULE_API_VERSION_1_0:

Geçerli değil. Ekstra özellikler mevcut değildir. Bu alanı okumayın.

CAMERA_MODULE_API_VERSION_2_0 veya üzeri:

Device_version >= CAMERA_DEVICE_API_VERSION_2_0 ise geçerlidir. Aksi halde okumayın.

Camera_common.h dosyasının 241. satırındaki tanım.


Bu yapıya ilişkin belgeler aşağıdaki dosyadan oluşturulmuştur: