camera3_stream Yapı Referansı

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.

camera3.h dosyasının 1523 satırındaki tanım.

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.

camera3.h dosyasının 1648 satırındaki tanım.

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.

camera3.h dosyasının 1565 satırındaki tanım.

uint32_t yüksekliği

Bu akıştaki arabelleklerin piksel cinsinden yüksekliği

camera3.h dosyasının 1542 satırındaki tanım.

uint32_t max_buffers

HAL aygıtının aynı anda kuyruğa alınmış olması gerekebilecek maksimum arabellek sayısı. HAL aygıtının bu akıştan bu değerden daha fazla uçuş sırasında arabelleği olmayabilir.

camera3.h dosyasının 1608 satırındaki tanım.

geçersiz* özel

Akış için HAL özel bilgilerine yönelik bir tanıtıcı. Çerçeve kodu tarafından denetlenmeyecek.

camera3.h dosyasının 1614 satırındaki tanım.

void* saklıdır[7]

camera3.h dosyasının 1677 satırındaki tanım.

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.

camera3.h dosyasının 1674 satırındaki tanım.

int akış_türü

akışın türü, camera3_stream_type_t değerlerinden biridir.

camera3.h dosyasının 1532 satırındaki tanım.

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.

camera3.h dosyasının 1601 satırındaki tanım.

uint32_t genişlik

Bu akıştaki arabelleklerin piksel cinsinden genişliği

camera3.h dosyasının 1537 satırındaki tanım.


Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur:
  • donanım/libdonanım/içerme/donanım/ camera3.h