Referensi Struct camera2_device_ops

Referensi Struct camera2_device_ops

#include < camera2.h >

Kolom Data

int(*  set_request_queue_src_ops )(const struct camera2_device *, const camera2_request_queue_src_ops_t *request_src_ops)
 
int(*  notify_request_queue_not_empty )(const struct camera2_device *)
 
int(*  set_frame_queue_dst_ops )(const struct camera2_device *, const camera2_frame_queue_dst_ops_t *frame_dst_ops)
 
int(*  get_in_progress_count )(const struct camera2_device *)
 
int(*  flush_captures_in_progress )(const struct camera2_device *)
 
int(*  construct_default_request )(const struct camera2_device *, int request_template, camera_metadata_t **request)
 
int(*  allocate_stream )(const struct camera2_device *, uint32_t width, uint32_t height, int format, const camera2_stream_ops_t *stream_ops, uint32_t *stream_id, uint32_t *format_actual, uint32_t *usage, uint32_t *max_buffers)
 
int(*  register_stream_buffers )(const struct camera2_device *, uint32_t stream_id, int num_buffers, buffer_handle_t *buffers)
 
int(*  release_stream )(const struct camera2_device *, uint32_t stream_id)
 
int(*  allocate_reprocess_stream )(const struct camera2_device *, uint32_t width, uint32_t height, uint32_t format, const camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)
 
int(*  allocate_reprocess_stream_from_stream )(const struct camera2_device *, uint32_t output_stream_id, const camera2_stream_in_ops_t *reprocess_stream_ops, uint32_t *stream_id)
 
int(*  release_reprocess_stream )(const struct camera2_device *, uint32_t stream_id)
 
int(*  trigger_action )(const struct camera2_device *, uint32_t trigger_id, int32_t ext1, int32_t ext2)
 
int(*  set_notify_callback )(const struct camera2_device *, camera2_notify_callback notify_cb, void *user)
 
int(*  get_metadata_vendor_tag_ops )(const struct camera2_device *, vendor_tag_query_ops_t **ops)
 
int(*  dump )(const struct camera2_device *, int fd)
 
int(*  get_instance_metadata )(const struct camera2_device *, camera_metadata **instance_metadata)
 

Deskripsi Mendetail

Definisi di baris 527 file camera2.h .

Dokumentasi Bidang

int(* allocate_reprocess_stream)(const struct camera2_device *, uint32_t width, uint32_t height, uint32_t format, const camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id, uint32_t *consumer_usage, uint32_t *max_buffers)

allocate_reprocess_stream:

Alokasikan aliran input baru untuk digunakan, yang ditentukan oleh lebar buffering output, tinggi, dan format piksel. Menampilkan ID aliran baru, flag penggunaan gralloc, dan jumlah buffering yang dapat diperoleh secara bersamaan yang diperlukan, jika berhasil. Kondisi error:

  • Meminta kombinasi lebar/tinggi/format yang tidak tercantum sebagai didukung oleh karakteristik statis sensor
  • Meminta terlalu banyak aliran pemrosesan ulang untuk dikonfigurasi sekaligus.

Parameter input:

  • width, height, format: Spesifikasi untuk buffering yang akan dikirim melalui streaming ini. Format harus berupa nilai dari daftar HAL_PIXEL_FORMAT_*.
  • reprocess_stream_ops: Struktur pointer fungsi untuk memperoleh dan melepaskan buffering untuk streaming ini. Aliran data pokok akan dikonfigurasi berdasarkan output penggunaan dan max_buffers.

Parameter output:

  • stream_id: Bilangan bulat tanpa tanda tangan yang mengidentifikasi aliran data ini. Nilai ini digunakan dalam permintaan masuk untuk mengidentifikasi streaming, dan dalam merilis streaming. ID ini diberi nomor secara terpisah dari ID aliran input.
  • consumer_usage: Mask penggunaan gralloc yang diperlukan oleh perangkat HAL untuk menggunakan jenis data yang diminta. Ini digunakan dalam mengalokasikan buffering gralloc baru untuk antrean buffering streaming.
  • max_buffers: Jumlah maksimum buffering yang mungkin perlu diperoleh perangkat HAL secara bersamaan. Perangkat mungkin tidak memiliki lebih banyak buffering yang diperoleh secara bersamaan daripada nilai ini.

Definisi di baris 708 dari file camera2.h .

int(* allocate_reprocess_stream_from_stream)(const struct camera2_device *, uint32_t output_stream_id, const camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id)

allocate_reprocess_stream_from_stream:

Alokasikan aliran input baru untuk digunakan, yang akan menggunakan buffer yang dialokasikan untuk aliran output yang ada. Artinya, setelah HAL mengantrekan buffering ke aliran output, HAL mungkin melihat buffering yang sama yang diberikan kepadanya dari aliran pemrosesan ulang input ini. Setelah HAL merilis buffering kembali ke aliran pemrosesan ulang, buffering akan dikembalikan ke antrean output untuk digunakan kembali.

Kondisi error:

  • Menggunakan streaming output dengan ukuran/format yang tidak sesuai untuk dasar streaming pemrosesan ulang.
  • Mencoba mengalokasikan terlalu banyak aliran pemrosesan ulang sekaligus.

Parameter input:

  • output_stream_id: ID aliran data output yang ada yang memiliki ukuran dan format yang sesuai untuk pemrosesan ulang.
  • reprocess_stream_ops: Struktur pointer fungsi untuk memperoleh dan melepaskan buffering untuk streaming ini. Streaming yang mendasarinya akan menggunakan handle buffering grafis yang sama dengan yang digunakan streaming output.

Parameter output:

  • stream_id: Bilangan bulat tanpa tanda tangan yang mengidentifikasi aliran data ini. Nilai ini digunakan dalam permintaan masuk untuk mengidentifikasi streaming, dan dalam merilis streaming. ID ini diberi nomor secara terpisah dari ID aliran input.

Klien HAL harus selalu merilis streaming pemrosesan ulang sebelum merilis streaming output yang menjadi dasarnya.

Definisi di baris 754 dari file camera2.h .

int(* allocate_stream)(const struct camera2_device *,uint32_t width, uint32_t height, int format, const camera2_stream_ops_t *stream_ops,uint32_t *stream_id, uint32_t *format_actual,uint32_t *usage, uint32_t *max_buffers)

allocate_stream:

Alokasikan aliran output baru untuk digunakan, yang ditentukan oleh lebar, tinggi, target buffer output, dan mungkin format piksel. Menampilkan ID aliran baru, flag penggunaan gralloc, jumlah buffering antrean minimum, dan mungkin format piksel, jika berhasil. Kondisi error:

  • Meminta kombinasi lebar/tinggi/format yang tidak tercantum sebagai didukung oleh karakteristik statis sensor
  • Meminta terlalu banyak streaming dari jenis format tertentu (misalnya, 2 streaming raw bayer).

Parameter input:

  • width, height, format: Spesifikasi untuk buffering yang akan dikirim melalui streaming ini. Format adalah nilai dari daftar HAL_PIXEL_FORMAT_*. Jika HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED digunakan, modul gralloc platform akan memilih format berdasarkan flag penggunaan yang disediakan oleh HAL kamera dan konsumen streaming. HAL kamera harus memeriksa buffering yang diberikan kepadanya dalam panggilan register_stream_buffers untuk mendapatkan format khusus implementasi jika diperlukan.
  • stream_ops: Struktur pointer fungsi untuk mendapatkan dan mengantre buffer untuk streaming ini. Aliran data pokok akan dikonfigurasi berdasarkan output penggunaan dan max_buffers. Metode dalam struktur ini mungkin tidak dipanggil hingga setelah allocate_stream ditampilkan.

Parameter output:

  • stream_id: Bilangan bulat tanpa tanda tangan yang mengidentifikasi aliran data ini. Nilai ini digunakan dalam permintaan masuk untuk mengidentifikasi streaming, dan dalam merilis streaming.
  • penggunaan: Masker penggunaan gralloc yang diperlukan oleh perangkat HAL untuk menghasilkan jenis data yang diminta. Ini digunakan dalam mengalokasikan buffering gralloc baru untuk antrean buffering streaming.
  • max_buffers: Jumlah maksimum buffering yang mungkin perlu dihapus dari antrean perangkat HAL secara bersamaan. Perangkat tidak boleh menghapus lebih banyak buffering daripada nilai ini secara bersamaan.

Definisi di baris 632 dari file camera2.h .

int(* construct_default_request)(const struct camera2_device *, int request_template, camera_metadata_t **request)

Buat permintaan default yang terisi untuk kasus penggunaan kamera standar.

Perangkat harus menampilkan permintaan lengkap yang dikonfigurasi untuk memenuhi kasus penggunaan yang diminta, yang harus merupakan salah satu enum CAMERA2_TEMPLATE_*. Semua kolom kontrol permintaan harus disertakan, kecuali android.request.outputStreams.

Buffer metadata yang ditampilkan harus dialokasikan dengan allocate_camera_metadata. Framework mengambil kepemilikan buffer.

Definisi di baris 580 dari file camera2.h .

int(* dump)(const struct camera2_device *, int fd)

Status dump hardware kamera

Definisi di baris 801 dari file camera2.h .

int(* flush_captures_in_progress)(const struct camera2_device *)

Mengosongkan semua rekaman yang sedang berlangsung. Hal ini mencakup semua permintaan yang dihapus dari antrean (reguler atau pemrosesan ulang) yang belum menempatkan output apa pun ke dalam streaming atau antrean frame. Perekaman yang selesai sebagian harus diselesaikan seperti biasa. Tidak ada permintaan baru yang dapat dikeluarkan dari antrean permintaan hingga penghapusan selesai.

Definisi di baris 567 dari file camera2.h .

int(* get_in_progress_count)(const struct camera2_device *)

Jumlah permintaan kamera yang sedang diproses oleh perangkat saat ini (ambil gambar/proses ulang yang permintaannya telah dihapus dari antrean, tetapi belum dimasukkan ke dalam antrean pipeline output). Tidak ada streaming yang dapat dirilis oleh framework hingga jumlah yang sedang berlangsung adalah 0.

Definisi di baris 558 dari file camera2.h .

int(* get_instance_metadata)(const struct camera2_device *, camera_metadata **instance_metadata)

Mendapatkan metadata khusus instance perangkat. Metadata ini harus konstan untuk satu instance perangkat kamera, tetapi dapat berbeda di antara panggilan open(). Pointer camera_metadata yang ditampilkan harus valid hingga metode close() perangkat dipanggil.

Informasi versi:

CAMERA_DEVICE_API_VERSION_2_0:

Tidak tersedia. Framework mungkin tidak dapat mengakses pointer fungsi ini.

CAMERA_DEVICE_API_VERSION_2_1:

Valid. Dapat dipanggil oleh framework.

Definisi di baris 820 dari file camera2.h .

int(* get_metadata_vendor_tag_ops)(const struct camera2_device *, vendor_tag_query_ops_t **ops)

Mendapatkan metode untuk membuat kueri informasi tag metadata ekstensi vendor. Dapat menetapkan ops ke NULL jika tidak ada tag ekstensi vendor yang ditentukan.

Definisi di baris 795 dari file camera2.h .

int(* notify_request_queue_not_empty)(const struct camera2_device *)

Memberi tahu perangkat bahwa antrean permintaan tidak lagi kosong. Hanya boleh dipanggil saat buffer pertama ditambahkan ke antrean baru, atau setelah sumber menampilkan NULL sebagai respons terhadap panggilan dequeue.

Definisi di baris 544 dari file camera2.h .

int(* register_stream_buffers)(const struct camera2_device *, uint32_t stream_id, int num_buffers, buffer_handle_t *buffers)

Mendaftarkan buffering untuk streaming tertentu. Ini dipanggil setelah panggilan allocate_stream berhasil, dan sebelum permintaan pertama yang mereferensikan streaming dimasukkan ke antrean. Metode ini dimaksudkan untuk memungkinkan perangkat HAL memetakan atau menyiapkan buffering untuk digunakan nanti. num_buffers dijamin minimal max_buffers (dari allocate_stream), tetapi mungkin lebih besar. Buffer akan dikunci untuk digunakan. Di akhir panggilan, semua buffering harus siap dikembalikan ke antrean. Jika format streaming ditetapkan ke HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, HAL kamera harus memeriksa buffering yang diteruskan di sini untuk menentukan informasi format piksel khusus platform.

Definisi di baris 657 dari file camera2.h .

int(* release_reprocess_stream)(const struct camera2_device *, uint32_t stream_id)

Merilis streaming pemrosesan ulang. Menampilkan error jika dipanggil saat get_in_progress_count bukan nol, atau jika ID streaming tidak valid.

Definisi pada baris 765 dari file camera2.h .

int(* release_stream)(const struct camera2_device *, uint32_t stream_id)

Merilis streaming. Menampilkan error jika dipanggil saat get_in_progress_count bukan nol, atau jika ID streaming tidak valid.

Definisi di baris 667 dari file camera2.h .

int(* set_frame_queue_dst_ops)(const struct camera2_device *, const camera2_frame_queue_dst_ops_t *frame_dst_ops)

Meneruskan metode antarmuka antrean frame output

Definisi di baris 549 dari file camera2.h .

int(* set_notify_callback)(const struct camera2_device *, camera2_notify_callback notify_cb, void *user)

Penyiapan callback notifikasi

Definisi di baris 787 dari file camera2.h .

int(* set_request_queue_src_ops)(const struct camera2_device *, const camera2_request_queue_src_ops_t *request_src_ops)

Teruskan metode antarmuka antrean permintaan input.

Definisi di baris 536 dari file camera2.h .

int(* trigger_action)(const struct camera2_device *, uint32_t trigger_id, int32_t ext1, int32_t ext2)

Memicu aktivitas asinkron. Ini digunakan untuk memicu perilaku khusus dari rutinitas 3A kamera saat digunakan. Lihat dokumentasi untuk CAMERA2_TRIGGER_* di atas untuk mengetahui detail ID pemicu dan argumennya.

Definisi di baris 779 dari file camera2.h .


Dokumentasi untuk struct ini dibuat dari file berikut: