Camera3_stream Yapı Referansı
#include < camera3.h >
Veri alanları | |
int | akış_tipi |
uint32_t | Genişlik |
uint32_t | yükseklik |
int | biçim |
uint32_t | kullanım |
uint32_t | max_buffers |
geçersiz * | özel |
android_dataspace_t | veri_alanı |
int | rotasyon |
geçersiz * | ayrılmış [7] |
Detaylı Açıklama
kamera3_stream_t:
Tek bir kamera giriş veya çıkış akışına yönelik bir tanıtıcı. Bir akış, arabellek çözünürlüğü ve formatı ile çerçeve tarafından ve ayrıca gralloc kullanım bayrakları ve maksimum uçuş içi arabellek sayısıyla HAL tarafından tanımlanır.
Akış yapıları çerçeveye aittir, ancak, define_streams() tarafından HAL'ye iletilen bir kamera3_akışına yönelik işaretçiler, bu kamera3_akışını bir argüman olarak içermeyen sonraki ilk yapılandırma_akışı() çağrısının sonuna kadar veya bu kamera3_akışının sonuna kadar geçerlidir. close() çağrısı.
Camera3_stream çerçevesi tarafından kontrol edilen tüm üyeler, Camera3_stream, config_streams()'a aktarıldıktan sonra değiştirilemez. HAL, özel işaretçinin içeriği hariç, yalnızca bir define_streams() çağrısı sırasında HAL tarafından kontrol edilen parametreleri değiştirebilir.
Eğer birconfig_streams() çağrısı ölümcül olmayan bir hata döndürürse, tüm aktif akışlar, sankiconfig_streams() çağrılmamış gibi geçerli kalır.
Akışın uç noktası kamera HAL cihazı tarafından görülemez. DEVICE_API_VERSION_3_1'de bu, kameranın yapımcı olduğu akışlarda (ÇIKIŞ ve İKİ YÖNLÜ akış türleri) tüketici kullanım bayraklarını paylaşacak şekilde değiştirildi (aşağıdaki kullanım alanına bakın).
Saha Dokümantasyonu
android_dataspace_t data_space |
Tamponun içeriğini açıklayan bir alan. Format ve arabellek boyutları, akış arabelleklerinin bellek düzenini ve yapısını tanımlarken, dataSpace, arabellek içindeki verilerin anlamını tanımlar.
Çoğu format için dataSpace, görüntü verilerinin renk uzayını tanımlar. Ayrıca bazı formatlar için dataSpace, görüntü bazlı verinin mi yoksa derinlik bazlı verinin mi istendiğini gösterir. Formatların ayrıntıları ve her format için geçerli dataSpace değerleri için system/core/include/system/graphics.h adresine bakın.
Versiyon bilgisi:
< CAMERA_DEVICE_API_VERSION_3_3:
Tanımlanmamıştır ve erişilmemelidir. dataSpace'in HAL_DATASPACE_UNKNOWN olduğu varsayılmalı ve uygun renk alanı vb. kullanım bayrakları ve formattan belirlenmelidir.
= CAMERA_DEVICE_API_VERSION_3_3:
Her zaman kamera servisi tarafından ayarlanır. HAL, akışı doğru renk alanına göre yapılandırmak veya destekleniyorsa renk ve derinlik çıktıları arasında seçim yapmak için bu dataSpace'i kullanmalıdır. Veri alanı değerleri, grafiklerdeki eski tanımlardır.h
>= CAMERA_DEVICE_API_VERSION_3_4:
Her zaman kamera servisi tarafından ayarlanır. HAL, akışı doğru renk alanına göre yapılandırmak veya destekleniyorsa renk ve derinlik çıktıları arasında seçim yapmak için bu dataSpace'i kullanmalıdır. Veri alanı değerleri, grafiklerdeki V0 veri alanı tanımları kullanılarak ayarlanır.h
dahili format |
Bu akıştaki arabelleklerin piksel biçimi. Format, system/core/include/system/graphics.h dosyasındaki HAL_PIXEL_FORMAT_* listesinden veya cihaza özel başlıklardan bir değerdir.
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED kullanılırsa platform gralloc modülü, kamera cihazı ve akışın diğer uç noktası tarafından sağlanan kullanım işaretlerine göre bir format seçecektir.
<= CAMERA_DEVICE_API_VERSION_3_1:
Kamera HAL cihazı, gerekirse uygulamaya özel format ayrıntılarını elde etmek için sonraki Register_stream_buffers() çağrısında kendisine verilen arabellekleri incelemelidir.
>= CAMERA_DEVICE_API_VERSION_3_2:
Register_stream_buffers() çerçeve tarafından çağrılmayacağından HAL, ISP'yi ve sensör hattını yalnızca yapılandırılmış akışların boyutlarına, kullanım işaretlerine ve formatlarına göre yapılandırmalıdır.
uint32_t yüksekliği |
uint32_t max_buffers |
geçersiz* özel |
dahili rotasyon |
Akışın gerekli çıkış dönüşü, Camera3_stream_rotation_t değerlerinden biri. Bunun, dere genişliği ve yüksekliğiyle birlikte HAL tarafından denetlenmesi gerekir. Örneğin, dönüş 90 derece ve akış genişliği ve yüksekliği sırasıyla 720 ve 1280 ise, kamera hizmeti 720x1280 boyutunda arabellekler sağlayacaktır ve HAL, 1280x720 boyutunda bir görüntü yakalamalı ve görüntüyü saat yönünün tersine 90 derece döndürmelidir. Akış türü girildiğinde dönüş alanı çalışmaz. Kamera HAL, bir giriş akışı için dönüş alanını göz ardı etmelidir.
<= CAMERA_DEVICE_API_VERSION_3_2:
Tanımlanmadı ve erişilmemesi gerekiyor. HAL, çıktı görüntülerine herhangi bir döndürme uygulamamalıdır.
>= CAMERA_DEVICE_API_VERSION_3_3:
Her zaman kamera servisi tarafından ayarlanır. HAL, akış yapılandırması sırasında bu alanı incelemelidir ve eğer HAL böyle bir dönüşü gerçekleştiremezse -EINVAL değerini döndürür. HAL her zaman CAMERA3_STREAM_ROTATION_0'ı desteklemelidir; bu nedenle, tüm akışların dönüş alanı CAMERA3_STREAM_ROTATION_0 ise, bir yapılandırma_streams() çağrısının desteklenmeyen dönüş nedeniyle başarısız olmaması gerekir.
int akış_tipi |
uint32_t kullanımı |
HAL'in gerektirdiği şekilde bu akış için gralloc kullanım bayrakları. Kullanım bayrakları gralloc.h'de (GRALLOC_USAGE_*) veya cihaza özel başlıklarda tanımlanır.
Çıkış akışları için bunlar HAL'in üretici kullanım bayraklarıdır. Giriş akışları için bunlar HAL'in tüketici kullanım bayraklarıdır. Üretici ve tüketiciden gelen kullanım bayrakları bir araya getirilecek ve daha sonra her akış için gralloc arabelleklerini tahsis etmek üzere platform gralloc HAL modülüne aktarılacaktır.
Versiyon bilgisi:
== CAMERA_DEVICE_API_VERSION_3_0:
configure_streams() aracılığıyla iletildiğinde başlangıç değeri garanti edilmez. HAL bu alanı giriş olarak kullanamaz, kullanım bayraklarıyla birlikte bu alanın üzerine yazmalıdır.
>= CAMERA_DEVICE_API_VERSION_3_1:
Stream_type OUTPUT ve BIDIRECTIONAL için,configure_streams() aracılığıyla iletildiğinde, bunun başlangıç değeri tüketicinin kullanım bayraklarıdır. HAL, akış konfigürasyonuna karar vermek için bu tüketici bayraklarını kullanabilir. Stream_type INPUT için,config_streams() aracılığıyla iletildiğinde bunun başlangıç değeri 0'dır.config_streams() aracılığıyla iletilen tüm akışlar için HAL, kullanım bayraklarıyla birlikte bu alanın üzerine yazmalıdır.
uint32_t genişlik |
Bu yapıya ilişkin belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/include/donanım/ kamera3.h