camera3_stream Yapı Referansı
#include <
camera3.h
>
Veri Alanları |
|
int | stream_type |
uint32_t | width |
uint32_t | height |
int | format |
uint32_t | usage |
uint32_t | max_buffers |
void * | priv |
android_dataspace_t | data_space |
int | rotation |
void * | reserved [7] |
Ayrıntılı Açıklama
camera3_stream_t:
Tek bir kamera girişi veya çıkış akışının simgesini belirtir. Akış, çerçeve tarafından arabellek çözünürlüğü ve biçimi ile tanımlanır ve ayrıca HAL tarafından gralloc kullanım işaretleri ve maksimum uçuştaki arabellek sayısı ile tanımlanır.
Akış yapılarının sahibi çerçevedir ancak configure_streams() tarafından HAL'e iletilen camera3_stream bir işaretçi, camera3_stream bağımsız değişken olarak dahil edilmeyen ilk sonraki configure_streams() çağrısının sonuna kadar veya close() çağrısının sonuna kadar geçerlidir.
camera3_stream çerçeve tarafından kontrol edilen tüm üyeler, camera3_stream configure_streams() işlevine aktarıldıktan sonra değiştirilemez. HAL, özel işaretçinin içeriği hariç olmak üzere yalnızca bir configure_streams() çağrısı sırasında HAL tarafından kontrol edilen parametreleri değiştirebilir.
configure_streams() çağrısı, önemli olmayan bir hata döndürürse tüm etkin akışlar, configure_streams() çağrılmamış gibi geçerli kalır.
Akış uç noktası, kamera HAL cihazı tarafından görülemez. 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 işaretlerini paylaşacak şekilde değiştirildi. Aşağıdaki kullanım alanına bakın.
Alan Belgeleri
android_dataspace_t data_space |
Arabelleğin içeriğini açıklayan bir alan. Biçim ve arabellek boyutları, akış arabelleklerinin bellek düzenini ve yapısını tanımlarken veri alanı, arabellekteki verilerin anlamını tanımlar.
Çoğu biçimde dataSpace, resim verilerinin renk alanını tanımlar. Ayrıca bazı biçimlerde dataSpace, resim tabanlı veya derinlik tabanlı verilerin istenip istenmediğini belirtir. Biçimlerle ilgili ayrıntılar ve her biçim için geçerli dataSpace değerleri için system/core/include/system/graphics.h dosyasına bakın.
Sürüm bilgileri:
< CAMERA_DEVICE_API_VERSION_3_3:
Tanımlanmamıştır ve erişilmemelidir. dataSpace'in HAL_DATASPACE_UNKNOWN olduğu varsayılmalıdır ve uygun renk alanı vb. kullanım işaretlerinden ve biçiminden belirlenmelidir.
= CAMERA_DEVICE_API_VERSION_3_3:
Her zaman kamera hizmeti tarafından ayarlanır. HAL, yayını doğru renk uzayına yapılandırmak veya destekleniyorsa renk ile derinlik çıkışları arasında seçim yapmak için bu veri alanını kullanmalıdır. Veri alanı değerleri, graphics.h'daki eski tanımlardır.
>= CAMERA_DEVICE_API_VERSION_3_4:
Her zaman kamera hizmeti tarafından ayarlanır. HAL, yayını doğru renk uzayına yapılandırmak veya destekleniyorsa renk ile derinlik çıkışları arasında seçim yapmak için bu veri alanını kullanmalıdır. Veri alanı değerleri, graphics.h dosyasında bulunan V0 veri alanı tanımları kullanılarak ayarlanır.
int biçimi |
Bu akıştaki arabellekleri piksel biçimi. Format, system/core/include/system/graphics.h dosyasında bulunan HAL_PIXEL_FORMAT_* listesinden veya cihaza özgü üstbilgilerden alınan bir değerdir.
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED kullanılıyorsa platform gralloc modülü, kamera cihazı ve aktarımın diğer uç noktası tarafından sağlanan kullanım işaretlerine göre bir biçim seçer.
<= CAMERA_DEVICE_API_VERSION_3_1:
Kamera HAL cihazı, gerekirse uygulamaya özgü biçim ayrıntılarını almak için sonraki register_stream_buffers() çağrısında kendisine iletilen arabellekleri denetlemelidir.
>= CAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers(), çerçeve tarafından çağrılmaz. Bu nedenle HAL, ISP ve sensör ardışık düzenini yalnızca yapılandırılmış akışların boyutlarına, kullanım işaretlerine ve biçimlerine göre yapılandırmalıdır.
uint32_t height |
uint32_t max_buffers |
void* priv |
int rotasyonu |
Aktarımın gerekli çıkış rotasyonu. camera3_stream_rotation_t değerlerinden biridir. Bu, akış genişliği ve yüksekliğiyle birlikte HAL tarafından denetlenmelidir. Örneğin, döndürme 90 dereceyse ve akış genişliği ile yüksekliği sırasıyla 720 ve 1280 ise kamera hizmeti 720x1280 boyutunda arabellekler sağlar ve HAL 1280x720 boyutunda bir resim yakalayıp resmi saat yönünün tersine 90 derece döndürmelidir. Akış türü giriş olduğunda rotasyon alanı işlem yapmaz. Kamera HAL'i, giriş akışı için döndürme alanını yoksaymalıdır.
<= CAMERA_DEVICE_API_VERSION_3_2:
Tanımlanmamış ve erişilmemelidir. HAL, çıkış resimlerine herhangi bir döndürme işlemi uygulamamalıdır.
>= CAMERA_DEVICE_API_VERSION_3_3:
Her zaman kamera hizmeti tarafından ayarlanır. HAL, akış yapılandırması sırasında bu alanı incelemelidir ve bu tür bir rotasyonu gerçekleştiremezse -EINVAL değerini döndürür. HAL her zaman CAMERA3_STREAM_ROTATION_0 değerini desteklemelidir. Bu nedenle, tüm akışların döndürme alanı CAMERA3_STREAM_ROTATION_0 ise desteklenmeyen döndürme için configure_streams() çağrısı başarısız olmamalıdır.
int stream_type |
uint32_t kullanımı |
HAL'ın ihtiyaç duyduğu bu akış için gralloc kullanım işaretleri. Kullanım işaretleri, gralloc.h (GRALLOC_USAGE_*) veya cihaza özel üstbilgilerde tanımlanır.
Çıkış akışları için bunlar HAL'ın üretici kullanım işaretleridir. Giriş akışları için bunlar HAL'ın tüketici kullanımı işaretleridir. Üretici ve tüketicinin kullanım işaretleri birleştirilir ve ardından her akış için gralloc arabelleklerinin ayrılması amacıyla platform gralloc HAL modülüne iletilir.
Sürüm bilgileri:
== 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 ve kullanım işaretleriyle 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 bu parametrenin ilk değeri tüketicinin kullanım işaretleridir. HAL, akış yapılandırmasına karar vermek için bu tüketici işaretlerini kullanabilir. stream_type INPUT için configure_streams() aracılığıyla iletildiğinde bu değerin ilk değeri 0'dır. HAL, configure_streams() aracılığıyla iletilen tüm akışlar için kullanım işaretleriyle bu alanın üzerine yazmalıdır.
uint32_t width |
Bu yapının dokümanları aşağıdaki dosyadan oluşturulmuştur:
- hardware/libhardware/include/hardware/ camera3.h