Referensi Struct camera3_stream_buffer
#include <
camera3.h
>
Kolom Data |
|
camera3_stream_t * | stream |
buffer_handle_t * | buffer |
int | status |
int | acquire_fence |
int | release_fence |
Deskripsi Mendetail
camera3_stream_buffer_t:
Satu buffering dari streaming camera3. Ini mencakup handle ke streaming induknya, handle ke buffering gralloc itu sendiri, dan pagar sinkronisasi
Buffer tidak menentukan apakah buffer akan digunakan untuk input atau output; hal ini ditentukan oleh jenis streaming induknya dan cara buffer diteruskan ke perangkat HAL.
Dokumentasi Bidang
int acquire_fence |
Pagar sinkronisasi akuisisi untuk buffering ini. HAL harus menunggu fd pagar ini sebelum mencoba membaca dari atau menulis ke buffer ini.
Framework dapat ditetapkan ke -1 untuk menunjukkan bahwa tidak perlu menunggu untuk buffer ini.
Saat HAL menampilkan buffering output ke framework dengan process_capture_result(), acquire_fence harus disetel ke -1. Jika HAL tidak pernah menunggu acquire_fence karena error dalam mengisi buffer, saat memanggil process_capture_result(), HAL harus menetapkan release_fence buffer menjadi acquire_fence yang diteruskan oleh framework. Tindakan ini akan memungkinkan framework menunggu di pagar sebelum menggunakan kembali buffer.
Untuk buffering input, HAL tidak boleh mengubah kolom acquire_fence selama panggilan process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Saat HAL menampilkan buffering input ke framework dengan process_capture_result(), acquire_fence harus disetel ke -1. Jika HAL tidak pernah menunggu pembatas akuisisi buffering input karena error, pembatas sinkronisasi harus ditangani dengan cara yang sama seperti cara penanganannya untuk buffering output.
int release_fence |
Pagar sinkronisasi rilis untuk buffering ini. HAL harus menetapkan pagar ini saat menampilkan buffering ke framework, atau menulis -1 untuk menunjukkan bahwa tidak ada penantian yang diperlukan untuk buffering ini.
Untuk buffering output, pagar harus ditetapkan dalam array output_buffers yang diteruskan ke process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
Untuk buffering input, pagar rilis harus ditetapkan oleh panggilan process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Untuk buffering input, pagar harus ditetapkan di input_buffer yang diteruskan ke process_capture_result().
Setelah memberikan sinyal release_fence untuk buffering ini, HAL tidak boleh melakukan upaya lebih lanjut untuk mengakses buffering ini karena kepemilikan telah sepenuhnya ditransfer kembali ke framework.
Jika pagar -1 ditentukan, kepemilikan buffer ini akan langsung ditransfer kembali setelah panggilan process_capture_result.
status int |
Status buffer saat ini, salah satu nilai camera3_buffer_status_t. Framework tidak akan meneruskan buffer ke HAL yang dalam status error. Jika buffer tidak dapat diisi oleh HAL, statusnya harus ditetapkan ke CAMERA3_BUFFER_STATUS_ERROR saat ditampilkan ke framework dengan process_capture_result().
camera3_stream_t * stream |
Dokumentasi untuk struct ini dibuat dari file berikut:
- hardware/libhardware/include/hardware/ camera3.h