Referensi Struct camera3_stream_buffer

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.

Definisi di baris 1755 file camera3.h .

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.

Definisi di baris 1800 dari file camera3.h .

buffer_handle_t* buffer

Handle native ke buffering

Definisi di baris 1764 dari file camera3.h .

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.

Definisi di baris 1827 dari file camera3.h .

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().

Definisi di baris 1773 dari file camera3.h .

Handle streaming yang terkait dengan buffering ini

Definisi di baris 1759 dari file camera3.h .


Dokumentasi untuk struct ini dibuat dari file berikut: