Referensi Struktur camera3_stream_buffer
#include < camera3.h >
Bidang Data | |
kamera3_stream_t * | sungai kecil |
buffer_handle_t * | penyangga |
ke dalam | status |
ke dalam | memperoleh_pagar |
ke dalam | rilis_pagar |
Detil Deskripsi
kamera3_stream_buffer_t:
Buffer tunggal dari aliran camera3. Ini mencakup pegangan ke aliran induknya, pegangan ke buffer gralloc itu sendiri, dan pagar sinkronisasi
Buffer tidak menentukan apakah akan digunakan untuk input atau output; yang ditentukan oleh jenis aliran induknya dan cara buffer diteruskan ke perangkat HAL.
Dokumentasi Lapangan
int memperoleh_pagar |
Pagar sinkronisasi perolehan untuk buffer ini. HAL harus menunggu di pagar ini sebelum mencoba membaca atau menulis ke buffer ini.
Kerangka kerja dapat diatur ke -1 untuk menunjukkan bahwa buffer ini tidak perlu menunggu.
Ketika HAL mengembalikan buffer keluaran ke kerangka kerja dengan process_capture_result(), acquire_fence harus disetel ke -1. Jika HAL tidak pernah menunggu pada acquire_fence karena kesalahan dalam mengisi buffer, saat memanggil process_capture_result() HAL harus menyetel rilis_fence buffer menjadi acquire_fence yang diteruskan ke sana oleh kerangka kerja. Ini akan memungkinkan kerangka untuk menunggu di pagar sebelum menggunakan kembali buffer.
Untuk buffer input, HAL tidak boleh mengubah bidang acquire_fence selama panggilan process_capture_request().
>= KAMERA_DEVICE_API_VERSION_3_2:
Ketika HAL mengembalikan buffer input ke kerangka kerja dengan process_capture_result(), acquire_fence harus disetel ke -1. Jika HAL tidak pernah menunggu pagar perolehan buffer masukan karena kesalahan, pagar sinkronisasi harus ditangani sama dengan cara menangani buffer keluaran.
int rilis_pagar |
Pagar sinkronisasi rilis untuk buffer ini. HAL harus menyetel pagar ini ketika mengembalikan buffer ke kerangka kerja, atau menulis -1 untuk menunjukkan bahwa buffer ini tidak perlu menunggu.
Untuk buffer keluaran, pagar harus diatur dalam array output_buffers yang diteruskan ke process_capture_result().
<= KAMERA_DEVICE_API_VERSION_3_1:
Untuk buffer input, pagar rilis harus diatur oleh panggilan process_capture_request().
>= KAMERA_DEVICE_API_VERSION_3_2:
Untuk buffer input, pagar harus disetel di input_buffer yang diteruskan ke process_capture_result().
Setelah memberi sinyal rilis_fence untuk buffer ini, HAL tidak boleh melakukan upaya lebih lanjut untuk mengakses buffer ini karena kepemilikan telah sepenuhnya ditransfer kembali ke kerangka kerja.
Jika pagar -1 ditentukan maka kepemilikan buffer ini ditransfer kembali segera setelah panggilan process_capture_result.
status ke dalam |
Status buffer saat ini, salah satu nilai camera3_buffer_status_t. Kerangka kerja tidak akan meneruskan buffer ke HAL yang berada dalam status kesalahan. Jika buffer tidak dapat diisi oleh HAL, statusnya harus disetel ke CAMERA3_BUFFER_STATUS_ERROR ketika dikembalikan ke kerangka kerja dengan process_capture_result().
kamera3_stream_t * aliran |
Dokumentasi untuk struct ini dihasilkan dari file berikut:
- perangkat keras/libhardware/termasuk/perangkat keras/ kamera3.h