Referensi Struct camera3_stream

Referensi Struct camera3_stream

#include < camera3.h >

Kolom Data

int  stream_type
 
uint32_t  width
 
uint32_t  height
 
int  format
 
uint32_t  penggunaan
 
uint32_t  max_buffers
 
void *  priv
 
android_dataspace_t  data_space
 
int  rotasi
 
void *  reserved [7]
 

Deskripsi Mendetail

camera3_stream_t:

Handle ke satu aliran input atau output kamera. Streaming ditentukan oleh framework berdasarkan resolusi dan format buffering-nya, dan juga oleh HAL dengan flag penggunaan gralloc dan jumlah buffering in-flight maksimum.

Struktur streaming dimiliki oleh framework, tetapi pointer ke camera3_stream yang diteruskan ke HAL oleh configure_streams() valid hingga akhir panggilan configure_streams() berikutnya yang pertama tidak menyertakan camera3_stream sebagai argumen, atau hingga akhir panggilan close().

Semua anggota yang dikontrol framework camera3_stream tidak dapat diubah setelah camera3_stream diteruskan ke configure_streams(). HAL hanya dapat mengubah parameter yang dikontrol HAL selama panggilan configure_streams(), kecuali untuk konten pointer pribadi.

Jika panggilan configure_streams() menampilkan error non-fatal, semua streaming aktif tetap valid seolah-olah configure_streams() belum dipanggil.

Endpoint streaming tidak terlihat oleh perangkat HAL kamera. Di DEVICE_API_VERSION_3_1, hal ini diubah untuk membagikan flag penggunaan konsumen di streaming dengan kamera sebagai produsen (jenis streaming OUTPUT dan BIDIRECTIONAL), lihat kolom penggunaan di bawah.

Definisi di baris 1523 file camera3.h .

Dokumentasi Bidang

android_dataspace_t data_space

Kolom yang menjelaskan konten buffering. Dimensi format dan buffer menentukan tata letak dan struktur memori buffer streaming, sedangkan dataSpace menentukan arti data dalam buffer.

Untuk sebagian besar format, dataSpace menentukan ruang warna data gambar. Selain itu, untuk beberapa format, dataSpace menunjukkan apakah data berbasis gambar atau kedalaman diminta. Lihat system/core/include/system/graphics.h untuk mengetahui detail format dan nilai dataSpace yang valid untuk setiap format.

Informasi versi:

< CAMERA_DEVICE_API_VERSION_3_3:

Tidak ditentukan dan tidak boleh diakses. dataSpace harus diasumsikan sebagai HAL_DATASPACE_UNKNOWN, dan ruang warna yang sesuai, dll., harus ditentukan dari flag penggunaan dan format.

= CAMERA_DEVICE_API_VERSION_3_3:

Selalu ditetapkan oleh layanan kamera. HAL harus menggunakan dataSpace ini untuk mengonfigurasi streaming ke ruang warna yang benar, atau untuk memilih antara output warna dan kedalaman jika didukung. Nilai ruang data adalah definisi lama di graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Selalu ditetapkan oleh layanan kamera. HAL harus menggunakan dataSpace ini untuk mengonfigurasi streaming ke ruang warna yang benar, atau untuk memilih antara output warna dan kedalaman jika didukung. Nilai ruang data ditetapkan menggunakan definisi ruang data V0 di graphics.h

Definisi pada baris 1648 dari file camera3.h .

format int

Format piksel untuk buffering dalam streaming ini. Format adalah nilai dari daftar HAL_PIXEL_FORMAT_* di system/core/include/system/graphics.h, atau dari header khusus perangkat.

Jika HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED digunakan, modul gralloc platform akan memilih format berdasarkan flag penggunaan yang disediakan oleh perangkat kamera dan endpoint streaming lainnya.

<= CAMERA_DEVICE_API_VERSION_3_1:

Perangkat HAL kamera harus memeriksa buffering yang diberikan kepadanya dalam panggilan register_stream_buffers() berikutnya untuk mendapatkan detail format khusus implementasi, jika diperlukan.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() tidak akan dipanggil oleh framework, sehingga HAL harus mengonfigurasi ISP dan pipeline sensor berdasarkan ukuran, flag penggunaan, dan format untuk streaming yang dikonfigurasi.

Definisi di baris 1565 dari file camera3.h .

tinggi uint32_t

Tinggi dalam piksel buffer dalam streaming ini

Definisi di baris 1542 dari file camera3.h .

uint32_t max_buffers

Jumlah maksimum buffering yang mungkin perlu dihapus dari antrean perangkat HAL secara bersamaan. Perangkat HAL mungkin tidak memiliki lebih banyak buffering yang sedang berlangsung dari streaming ini daripada nilai ini.

Definisi pada baris 1608 dari file camera3.h .

void* priv

Nama sebutan untuk informasi pribadi HAL untuk streaming. Tidak akan diperiksa oleh kode framework.

Definisi di baris 1614 dari file camera3.h .

void* reserved[7]

Definisi di baris 1677 dari file camera3.h .

rotasi int

Rotasi output yang diperlukan dari streaming, salah satu nilai camera3_stream_rotation_t. Hal ini harus diperiksa oleh HAL beserta lebar dan tinggi streaming. Misalnya, jika rotasi adalah 90 derajat dan lebar serta tinggi streaming masing-masing adalah 720 dan 1280, layanan kamera akan menyediakan buffering berukuran 720x1280, dan HAL harus mengambil gambar 1280x720 dan memutar gambar sebesar 90 derajat berlawanan arah jarum jam. Kolom rotasi tidak berfungsi jika jenis streaming adalah input. HAL Kamera harus mengabaikan kolom rotasi untuk aliran input.

<= CAMERA_DEVICE_API_VERSION_3_2:

Tidak ditentukan dan tidak boleh diakses. HAL tidak boleh menerapkan rotasi apa pun pada gambar output.

>= CAMERA_DEVICE_API_VERSION_3_3:

Selalu ditetapkan oleh layanan kamera. HAL harus memeriksa kolom ini selama konfigurasi streaming dan menampilkan -EINVAL jika HAL tidak dapat melakukan rotasi tersebut. HAL harus selalu mendukung CAMERA3_STREAM_ROTATION_0, sehingga panggilan configure_streams() tidak boleh gagal untuk rotasi yang tidak didukung jika kolom rotasi dari semua streaming adalah CAMERA3_STREAM_ROTATION_0.

Definisi di baris 1674 dari file camera3.h .

int stream_type

Jenis streaming, salah satu nilai camera3_stream_type_t.

Definisi di baris 1532 dari file camera3.h .

Penggunaan uint32_t

Flag penggunaan gralloc untuk streaming ini, seperti yang diperlukan oleh HAL. Flag penggunaan ditentukan dalam gralloc.h (GRALLOC_USAGE_*), atau dalam header khusus perangkat.

Untuk aliran output, ini adalah flag penggunaan produsen HAL. Untuk aliran input, ini adalah flag penggunaan konsumen HAL. Flag penggunaan dari produsen dan konsumen akan digabungkan, lalu diteruskan ke modul HAL gralloc platform untuk mengalokasikan buffering gralloc untuk setiap streaming.

Informasi versi:

== CAMERA_DEVICE_API_VERSION_3_0:

Tidak ada nilai awal yang dijamin saat diteruskan melalui configure_streams(). HAL mungkin tidak menggunakan kolom ini sebagai input, dan harus menulis ulang kolom ini dengan flag penggunaannya.

>= CAMERA_DEVICE_API_VERSION_3_1:

Untuk stream_type OUTPUT dan BIDIRECTIONAL, saat diteruskan melalui configure_streams(), nilai awalnya adalah flag penggunaan konsumen. HAL dapat menggunakan flag konsumen ini untuk menentukan konfigurasi streaming. Untuk INPUT stream_type, saat diteruskan melalui configure_streams(), nilai awalnya adalah 0. Untuk semua streaming yang diteruskan melalui configure_streams(), HAL harus menulis di kolom ini dengan flag penggunaannya.

Definisi pada baris 1601 dari file camera3.h .

Lebar uint32_t

Lebar dalam piksel buffer di streaming ini

Definisi di baris 1537 dari file camera3.h .


Dokumentasi untuk struct ini dibuat dari file berikut: