camera3_stream Yapı Referansı
#include < camera3.h >
Veri alanları | |
int | stream_type |
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 | data_space |
int | rotasyon |
geçersiz * | rezerve [7] |
Detaylı Açıklama
camera3_stream_t:
Tek bir kamera giriş veya çıkış akışına yönelik bir tutamaç. Bir akış, çerçeve tarafından arabellek çözünürlüğü ve biçimi ile ve ayrıca gralloc kullanım bayrakları ve maksimum uçuş sırasında arabellek sayısı ile HAL tarafından tanımlanır.
Akış yapıları çerçeveye aittir, ancak HAL'a configure_streams() tarafından iletilen bir camera3_stream'in işaretçileri, o camera3_stream'i bir argüman olarak içermeyen sonraki ilk configure_streams() çağrısının sonuna kadar veya yakın() çağrısı.
camera3_stream , configure_streams()'e geçirildikten sonra, camera3_stream çerçevesi tarafından kontrol edilen tüm üyeler değişmezdir. HAL, özel işaretçinin içeriği dışında, yalnızca bir configure_streams() çağrısı sırasında HAL tarafından kontrol edilen parametreleri değiştirebilir.
Bir configure_streams() çağrısı önemli olmayan bir hata döndürürse, tüm aktif akışlar, configure_streams() çağrılmamış gibi geçerli kalır.
Akışın uç noktası, kamera HAL cihazına görünmez. DEVICE_API_VERSION_3_1 sürümünde bu, kameranın üretici olduğu akışlarda (OUTPUT ve BIDIRECTIONAL akış türleri) tüketici kullanım bayraklarını paylaşmak için 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ı biçimler için dataSpace, görüntü tabanlı veya derinlik tabanlı verilerin istendiğini belirtir. Biçimlerin ayrıntıları ve her biçim 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ından ve formattan belirlenmelidir.
= CAMERA_DEVICE_API_VERSION_3_3:
Her zaman kamera servisi tarafından ayarlanır. HAL, akışı doğru renk alanına 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, Graphics.h içindeki eski tanımlardır.
>= CAMERA_DEVICE_API_VERSION_3_4:
Her zaman kamera servisi tarafından ayarlanır. HAL, akışı doğru renk alanına 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, Graphics.h'deki V0 veri alanı tanımları kullanılarak ayarlanır.
int biçimi |
Bu akıştaki arabellekler için piksel biçimi. Biçim, system/core/include/system/graphics.h içindeki 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 bayraklarına dayalı olarak bir format seçecektir.
<= CAMERA_DEVICE_API_VERSION_3_1:
Kamera HAL aygıtı, gerekirse uygulamaya özel biçim 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ılmayacak, bu nedenle HAL, ISP'yi ve sensör ardışık düzenini yalnızca boyutlara, kullanım bayraklarına ve yapılandırılmış akışların biçimlerine dayalı olarak yapılandırmalıdır.
uint32_t yüksekliği |
uint32_t max_buffers |
geçersiz* özel |
int döndürme |
camera3_stream_rotation_t değerlerinden biri olan akışın gerekli çıkış dönüşü. Bu, akış genişliği ve yüksekliği ile birlikte HAL tarafından denetlenmelidir. Ö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ğlar ve HAL 1280x720 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öndürme alanı çalışmaz. Kamera HAL'si, bir giriş akışı için döndürme alanını yok saymalıdır.
<= CAMERA_DEVICE_API_VERSION_3_2:
Tanımlanmamıştır ve erişilmemelidir. 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 HAL böyle bir döndürme 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 configure_streams() çağrısı desteklenmeyen dönüş için başarısız olmamalıdır.
int akış_türü |
uint32_t kullanımı |
HAL'in ihtiyaç duyduğu şekilde bu akış için grelloc kullanım bayrakları. Kullanım bayrakları, gralloc.h (GRALLOC_USAGE_*) veya cihaza özel başlıklarda tanımlanır.
Çıkış akışları için bunlar HAL'ın üretici kullanım bayraklarıdır. Giriş akışları için bunlar HAL'in tüketici kullanım işaretleridir. Üretici ve tüketiciden gelen kullanım bayrakları bir araya getirilecek ve ardından her akış için gralloc arabelleklerini tahsis etmek için platform gralloc HAL modülüne geçirilecektir.
Versiyon bilgisi:
== CAMERA_DEVICE_API_VERSION_3_0:
configure_streams() yoluyla geçirildiğinde hiçbir başlangıç değeri garanti edilmez. HAL bu alanı girdi olarak kullanamaz ve kullanım bayrakları ile bu alan üzerine yazmalıdır.
>= CAMERA_DEVICE_API_VERSION_3_1:
Stream_type OUTPUT ve BIDIRECTIONAL için, configure_streams() yoluyla geçirildiğinde, bunun başlangıç değeri, tüketicinin kullanım bayraklarıdır. HAL, akış yapılandırmasına karar vermek için bu tüketici bayraklarını kullanabilir. stream_type INPUT için, configure_streams() yoluyla geçirildiğinde, bunun başlangıç değeri 0'dır. configure_streams() aracılığıyla geçirilen tüm akışlar için, HAL, kullanım bayraklarıyla bu alan üzerine yazmalıdır.
uint32_t genişlik |
Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur:
- donanım/libdonanım/içerme/donanım/ camera3.h