Referensi Struct camera2_request_queue_src_ops

Referensi Struct camera2_request_queue_src_ops

#include < camera2.h >

Kolom Data

int(*  request_count )(const struct camera2_request_queue_src_ops *q)
 
int(*  dequeue_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)
 
int(*  free_request )(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)
 

Deskripsi Mendetail

Meminta protokol antrean input:

Framework menyimpan antrean dan kontennya. Pada awalnya, antrean kosong.

  1. Saat buffering metadata pertama ditempatkan ke dalam antrean, framework akan memberi sinyal ke perangkat dengan memanggil notify_request_queue_not_empty().
  2. Setelah menerima notify_request_queue_not_empty, perangkat harus memanggil dequeue() setelah siap menangani buffer berikutnya.
  3. Setelah memproses buffer, dan siap untuk buffer berikutnya, perangkat harus memanggil dequeue() lagi, bukan menunggu notifikasi. Jika tidak ada buffer lagi yang tersedia, dequeue() akan menampilkan NULL. Setelah titik ini, saat buffer tersedia, framework harus memanggil notify_request_queue_not_empty() lagi. Jika perangkat menerima nilai NULL dari dequeue, perangkat tidak perlu membuat kueri antrean lagi hingga panggilan notify_request_queue_not_empty() diterima dari sumber.
  4. Jika perangkat memanggil buffer_count() dan menerima 0, ini tidak berarti bahwa framework akan memberikan panggilan notify_request_queue_not_empty(). Framework hanya akan memberikan notifikasi tersebut setelah perangkat menerima NULL dari dequeue, atau saat startup awal.
  5. Panggilan dequeue() sebagai respons terhadap notify_request_queue_not_empty() mungkin berada di thread yang sama dengan panggilan notify_request_queue_not_empty(), dan dapat dilakukan dari dalam panggilan notifikasi.
  6. Semua buffering permintaan yang di-dequeue harus dikembalikan ke framework dengan memanggil free_request, termasuk saat error terjadi, penghapusan perangkat diminta, atau saat perangkat dimatikan.

Definisi di baris 220 file camera2.h .

Dokumentasi Bidang

int(* dequeue_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t **buffer)

Mendapatkan buffering metadata dari framework. Menampilkan OK jika tidak ada error. Jika antrean kosong, akan menampilkan NULL di buffering. Dalam hal ini, perangkat harus menunggu pesan notify_request_queue_not_empty() sebelum mencoba menghapus antrean lagi. Buffer yang diperoleh dengan cara ini harus dikembalikan ke framework dengan free_request() .

Definisi di baris 237 dari file camera2.h .

int(* free_request)(const struct camera2_request_queue_src_ops *q, camera_metadata_t *old_buffer)

Menampilkan buffering metadata ke framework setelah digunakan, atau jika terjadi error atau penonaktifan.

Definisi di baris 243 dari file camera2.h .

int(* request_count)(const struct camera2_request_queue_src_ops *q)

Mendapatkan jumlah buffering permintaan yang tertunda dalam antrean. Dapat menampilkan CAMERA2_REQUEST_QUEUE_IS_BOTTOMLESS jika permintaan berulang (permintaan streaming) saat ini dikonfigurasi. Memanggil metode ini tidak memengaruhi apakah metode notify_request_queue_not_empty() akan dipanggil oleh framework.

Definisi di baris 228 dari file camera2.h .


Dokumentasi untuk struct ini dibuat dari file berikut: