Referensi Struktur camera3_stream
#include < camera3.h >
Bidang Data | |
ke dalam | aliran_tipe |
uint32_t | lebar |
uint32_t | tinggi |
ke dalam | format |
uint32_t | penggunaan |
uint32_t | max_buffers |
ruang kosong * | pribadi |
android_dataspace_t | ruang_data |
ke dalam | rotasi |
ruang kosong * | dipesan [7] |
Detil Deskripsi
camera3_stream_t:
Pegangan ke aliran input atau output kamera tunggal. Aliran ditentukan oleh kerangka kerja dengan resolusi dan format buffer, dan tambahan oleh HAL dengan flag penggunaan gralloc dan jumlah buffer maksimum dalam penerbangan.
Struktur aliran dimiliki oleh kerangka kerja, tetapi penunjuk ke camera3_stream yang diteruskan ke HAL oleh configure_streams() valid hingga akhir panggilan configure_streams() pertama berikutnya yang tidak menyertakan camera3_stream itu sebagai argumen, atau hingga akhir panggilan tutup().
Semua anggota yang dikontrol kerangka kerja 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() mengembalikan kesalahan non-fatal, semua aliran aktif tetap valid seolah-olah configure_streams() belum dipanggil.
Titik akhir aliran tidak terlihat oleh perangkat HAL kamera. Di DEVICE_API_VERSION_3_1, ini diubah untuk membagikan tanda penggunaan konsumen pada aliran di mana kamera adalah produsennya (jenis aliran OUTPUT dan BIDIRECTIONAL) lihat bidang penggunaan di bawah.
Dokumentasi Lapangan
android_dataspace_t data_space |
Bidang yang menjelaskan isi buffer. Dimensi format dan buffer menentukan tata letak memori dan struktur buffer aliran, sedangkan dataSpace mendefinisikan arti data di dalam buffer.
Untuk sebagian besar format, dataSpace mendefinisikan ruang warna dari data gambar. Selain itu, untuk beberapa format, dataSpace menunjukkan apakah data berbasis gambar atau kedalaman diminta. Lihat system/core/include/system/graphics.h untuk 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 formatnya.
= CAMERA_DEVICE_API_VERSION_3_3:
Selalu disetel oleh layanan kamera. HAL harus menggunakan dataSpace ini untuk mengonfigurasi aliran ke ruang warna yang benar, atau untuk memilih antara keluaran warna dan kedalaman jika didukung. Nilai ruang data adalah definisi warisan dalam graphics.h
>= CAMERA_DEVICE_API_VERSION_3_4:
Selalu disetel oleh layanan kamera. HAL harus menggunakan dataSpace ini untuk mengonfigurasi aliran ke ruang warna yang benar, atau untuk memilih antara keluaran warna dan kedalaman jika didukung. Nilai ruang data diatur menggunakan definisi ruang data V0 di graphics.h
format int |
Format piksel untuk buffer dalam aliran 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, maka modul gralloc platform akan memilih format berdasarkan flag penggunaan yang disediakan oleh perangkat kamera dan titik akhir aliran lainnya.
<= CAMERA_DEVICE_API_VERSION_3_1:
Perangkat HAL kamera harus memeriksa buffer yang diserahkan kepadanya dalam panggilan register_stream_buffers() berikutnya untuk mendapatkan detail format spesifik implementasi, jika perlu.
>= CAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers() tidak akan dipanggil oleh framework, jadi HAL harus mengonfigurasi ISP dan pipeline sensor berdasarkan ukuran, flag penggunaan, dan format untuk stream yang dikonfigurasi.
tinggi uint32_t |
uint32_t max_buffers |
batal* pribadi |
rotasi int |
Rotasi keluaran aliran yang diperlukan, salah satu nilai camera3_stream_rotation_t. Ini harus diperiksa oleh HAL bersama dengan lebar dan tinggi aliran. Misalnya, jika rotasi adalah 90 derajat dan lebar dan tinggi aliran masing-masing adalah 720 dan 1280, layanan kamera akan menyediakan buffer ukuran 720x1280, dan HAL harus menangkap gambar 1280x720 dan memutar gambar 90 derajat berlawanan arah jarum jam. Bidang rotasi tidak beroperasi saat jenis aliran dimasukkan. Kamera HAL harus mengabaikan bidang 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 keluaran.
>= CAMERA_DEVICE_API_VERSION_3_3:
Selalu disetel oleh layanan kamera. HAL harus memeriksa bidang ini selama konfigurasi aliran dan mengembalikan -EINVAL jika HAL tidak dapat melakukan rotasi tersebut. HAL harus selalu mendukung CAMERA3_STREAM_ROTATION_0, jadi panggilan configure_streams() tidak boleh gagal untuk rotasi yang tidak didukung jika bidang rotasi semua aliran adalah CAMERA3_STREAM_ROTATION_0.
int stream_type |
penggunaan uint32_t |
Bendera penggunaan gralloc untuk aliran ini, seperti yang diperlukan oleh HAL. Bendera penggunaan didefinisikan dalam gralloc.h (GRALLOC_USAGE_*), atau dalam header khusus perangkat.
Untuk aliran keluaran, ini adalah flag penggunaan produsen HAL. Untuk aliran input, ini adalah flag penggunaan konsumen HAL. Bendera penggunaan dari produsen dan konsumen akan digabungkan bersama dan kemudian diteruskan ke modul platform gralloc HAL untuk mengalokasikan buffer gralloc untuk setiap aliran.
Informasi versi:
== CAMERA_DEVICE_API_VERSION_3_0:
Tidak ada nilai awal yang dijamin saat diteruskan melalui configure_streams(). HAL tidak boleh menggunakan bidang ini sebagai input, dan harus menulis di atas bidang ini dengan tanda penggunaannya.
>= CAMERA_DEVICE_API_VERSION_3_1:
Untuk OUTPUT stream_type dan BIDIRECTIONAL, ketika diteruskan melalui configure_streams(), nilai awal ini adalah flag penggunaan konsumen. HAL dapat menggunakan flag konsumen ini untuk memutuskan konfigurasi aliran. Untuk stream_type INPUT, ketika diteruskan melalui configure_streams(), nilai awalnya adalah 0. Untuk semua streaming yang diteruskan melalui configure_streams(), HAL harus menulis di atas bidang ini dengan flag penggunaannya.
lebar uint32_t |
Dokumentasi untuk struct ini dibuat dari file berikut:
- hardware/libhardware/include/hardware/ camera3.h