Referensi Struktur camera3_stream
#include < camera3.h >
Bidang Data | |
ke dalam | tipe_aliran |
uint32_t | lebar |
uint32_t | tinggi |
ke dalam | format |
uint32_t | penggunaan |
uint32_t | max_buffers |
ruang kosong * | pribadi |
android_dataspace_t | data_space |
ke dalam | rotasi |
ruang kosong * | dilindungi undang-undang [7] |
Detil Deskripsi
kamera3_stream_t:
Pegangan untuk aliran input atau output kamera tunggal. Aliran ditentukan oleh kerangka kerja berdasarkan resolusi dan format buffernya, dan juga oleh HAL dengan tanda penggunaan gralloc dan jumlah buffer dalam penerbangan maksimum.
Struktur aliran dimiliki oleh kerangka kerja, namun penunjuk ke camera3_stream yang diteruskan ke HAL oleh konfigurasi_streams() valid hingga akhir panggilan konfigurasi_streams() pertama berikutnya yang tidak menyertakan kamera3_stream tersebut sebagai argumen, atau hingga akhir panggilan tutup().
Semua anggota yang dikontrol kerangka kerja camera3_stream tidak dapat diubah setelah camera3_stream diteruskan ke konfigurasi_streams(). HAL hanya dapat mengubah parameter yang dikontrol HAL selama panggilan konfigurasi_streams(), kecuali untuk konten penunjuk pribadi.
Jika panggilan konfigurasi_streams() mengembalikan kesalahan non-fatal, semua aliran aktif tetap valid seolah-olah konfigurasi_streams() tidak dipanggil.
Titik akhir aliran tidak terlihat oleh perangkat kamera HAL. Di DEVICE_API_VERSION_3_1, ini diubah untuk membagikan tanda penggunaan konsumen pada aliran di mana kamera adalah produsernya (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 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 detail format dan nilai dataSpace yang valid untuk setiap format.
Informasi versi:
< KAMERA_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 tanda penggunaan dan format.
= KAMERA_DEVICE_API_VERSION_3_3:
Selalu diatur 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 lama di grafis.h
>= KAMERA_DEVICE_API_VERSION_3_4:
Selalu diatur 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 grafis.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 platform gralloc akan memilih format berdasarkan tanda penggunaan yang disediakan oleh perangkat kamera dan titik akhir aliran lainnya.
<= KAMERA_DEVICE_API_VERSION_3_1:
Perangkat HAL kamera harus memeriksa buffer yang diserahkan padanya pada panggilan register_stream_buffers() berikutnya untuk mendapatkan detail format spesifik implementasi, jika diperlukan.
>= KAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers() tidak akan dipanggil oleh kerangka kerja, sehingga HAL harus mengonfigurasi ISP dan pipeline sensor hanya berdasarkan ukuran, tanda penggunaan, dan format untuk aliran 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. Hal ini harus diperiksa oleh HAL beserta lebar dan tinggi sungai. Misalnya, jika rotasinya 90 derajat dan lebar serta tinggi aliran masing-masing 720 dan 1280, layanan kamera akan menyediakan buffer berukuran 720x1280, dan HAL harus menangkap gambar 1280x720 dan memutar gambar sebesar 90 derajat berlawanan arah jarum jam. Bidang rotasi adalah no-op ketika tipe 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.
>= KAMERA_DEVICE_API_VERSION_3_3:
Selalu diatur 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, sehingga panggilan konfigurasi_streams() tidak boleh gagal untuk rotasi yang tidak didukung jika bidang rotasi semua aliran adalah CAMERA3_STREAM_ROTATION_0.
ke dalam tipe_aliran |
penggunaan uint32_t |
Tanda penggunaan gralloc untuk aliran ini, sesuai kebutuhan HAL. Tanda penggunaan ditentukan di gralloc.h (GRALLOC_USAGE_*), atau di header khusus perangkat.
Untuk aliran keluaran, ini adalah tanda penggunaan produsen HAL. Untuk aliran input, ini adalah tanda penggunaan konsumen HAL. Tanda 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:
== KAMERA_DEVICE_API_VERSION_3_0:
Tidak ada jaminan nilai awal saat diteruskan melalui konfigurasi_streams(). HAL tidak boleh menggunakan kolom ini sebagai masukan, dan harus menulis di atas kolom ini dengan tanda penggunaannya.
>= KAMERA_DEVICE_API_VERSION_3_1:
Untuk stream_type OUTPUT dan BIDIRECTIONAL, ketika diteruskan melalui konfigurasi_streams(), nilai awalnya adalah tanda penggunaan konsumen. HAL dapat menggunakan tanda konsumen ini untuk memutuskan konfigurasi aliran. Untuk stream_type INPUT, ketika diteruskan melalui konfigurasi_streams(), nilai awalnya adalah 0. Untuk semua aliran yang diteruskan melalui konfigurasi_streams(), HAL harus menulis pada bidang ini dengan tanda penggunaannya.
Dokumentasi untuk struct ini dihasilkan dari file berikut:
- perangkat keras/libhardware/termasuk/perangkat keras/ kamera3.h