Referensi Struct camera_module

Referensi Struct camera_module

#include < camera_common.h >

Kolom Data

hw_module_t   umum
 
int(*  get_number_of_cameras )(void)
 
int(*  get_camera_info )(int camera_id, struct camera_info *info)
 
int(*  set_callbacks )(const camera_module_callbacks_t *callbacks)
 
void(*  get_vendor_tag_ops )(vendor_tag_ops_t *ops)
 
int(*  open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
 
int(*  set_torch_mode )(const char *camera_id, bool enabled)
 
int(*  init )()
 
void *  reserved [5]
 

Deskripsi Mendetail

Definisi di baris 646 file camera_common.h .

Dokumentasi Bidang

Metode umum modul kamera. ini harus menjadi anggota pertama camera_module karena pengguna struktur ini akan mentransmisikan hw_module_t ke pointer camera_module dalam konteks yang diketahui bahwa hw_module_t mereferensikan camera_module .

Nilai yang ditampilkan untuk common.methods->open untuk camera_module adalah:

0: Saat perangkat kamera berhasil dibuka.

-ENODEV: Perangkat kamera tidak dapat dibuka karena error internal.

-EINVAL: Argumen input tidak valid, yaitu ID tidak valid, dan/atau modul tidak valid.

-EBUSY: Perangkat kamera sudah dibuka untuk ID kamera ini (dengan menggunakan metode ini atau open_legacy), terlepas dari versi HAL perangkat yang dibuka.

-EUSERS: Jumlah maksimum perangkat kamera yang dapat dibuka secara serentak telah dibuka, baik dengan metode ini maupun metode open_legacy.

Semua nilai return lainnya dari common.methods->open akan diperlakukan sebagai -ENODEV.

Definisi di baris 674 dari file camera_common.h .

int(* get_camera_info)(int camera_id, struct camera_info *info)

get_camera_info:

Menampilkan informasi kamera statis untuk perangkat kamera tertentu. Informasi ini mungkin tidak berubah untuk perangkat kamera.

Nilai kembalian:

0: Jika operasi berhasil

-ENODEV: Informasi tidak dapat diberikan karena error internal.

-EINVAL: Argumen input tidak valid, yaitu ID tidak valid, dan/atau modul tidak valid.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 atau yang lebih tinggi:

Saat kamera terputus, ID kameranya menjadi tidak valid. Memanggil metode ini dengan ID kamera yang tidak valid ini akan mendapatkan metadata statis kamera -EINVAL dan NULL ( camera_info.static_camera_characteristics ).

Definisi di baris 727 dari file camera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras:

Menampilkan jumlah perangkat kamera yang dapat diakses melalui modul kamera. Perangkat kamera diberi nomor 0 hingga N-1, dengan N adalah nilai yang ditampilkan oleh panggilan ini. Nama perangkat kamera untuk open() hanyalah angka yang dikonversi menjadi string. Artinya, "0" untuk ID kamera 0, "1" untuk ID kamera 1.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau yang lebih rendah:

Nilai di sini harus statis, dan tidak dapat berubah setelah panggilan pertama ke metode ini.

CAMERA_MODULE_API_VERSION_2_4 atau yang lebih tinggi:

Nilai di sini harus statis, dan hanya boleh menghitung kamera bawaan, yang memiliki nilai menghadap kamera CAMERA_FACING_BACK atau CAMERA_FACING_FRONT ( camera_info.facing ). HAL tidak boleh menyertakan kamera eksternal ( camera_info.facing == CAMERA_FACING_EXTERNAL) ke dalam nilai yang ditampilkan dari panggilan ini. Framework akan menggunakan callback camera_device_status_change untuk mengelola jumlah kamera eksternal.

Definisi pada baris 701 dari file camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

Mendapatkan metode untuk membuat kueri informasi tag metadata ekstensi vendor. HAL harus mengisi semua metode operasi tag vendor, atau membiarkan operasi tidak berubah jika tidak ada tag vendor yang ditentukan.

Struktur vendor_tag_ops yang digunakan di sini ditentukan di: system/media/camera/include/system/vendor_tags.h

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Tidak disediakan oleh modul HAL. Framework mungkin tidak memanggil fungsi ini.

CAMERA_MODULE_API_VERSION_2_2: Valid untuk dipanggil oleh framework.

Definisi di baris 778 dari file camera_common.h .

int(* init)()

init:

Metode ini dipanggil oleh layanan kamera sebelum metode lain dipanggil, tepat setelah library HAL kamera berhasil dimuat. Nilai ini dapat dibiarkan sebagai NULL oleh modul HAL, jika tidak diperlukan inisialisasi.

Hal ini dapat digunakan oleh implementasi HAL untuk melakukan inisialisasi dan operasi satu kali lainnya.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Tidak disediakan oleh modul HAL. Framework tidak akan memanggil fungsi ini.

CAMERA_MODULE_API_VERSION_2_4: Jika bukan NULL, akan selalu dipanggil oleh framework setelah modul HAL dimuat, sebelum metode modul HAL lainnya dipanggil.

Nilai kembalian:

0: Jika operasi berhasil.

-ENODEV: Inisialisasi tidak dapat diselesaikan karena error internal. HAL harus diasumsikan dalam status tidak berfungsi.

Definisi di baris 909 dari file camera_common.h .

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

open_legacy:

Buka perangkat HAL kamera lama tertentu jika beberapa versi HAL API perangkat didukung oleh modul HAL kamera ini. Misalnya, jika modul kamera mendukung API perangkat CAMERA_DEVICE_API_VERSION_1_0 dan CAMERA_DEVICE_API_VERSION_3_2 untuk ID kamera yang sama, framework dapat memanggil fungsi ini untuk membuka perangkat kamera sebagai perangkat CAMERA_DEVICE_API_VERSION_1_0.

Ini adalah metode opsional. Modul HAL Kamera tidak perlu mendukung lebih dari satu versi HAL perangkat per perangkat, dan modul tersebut dapat menampilkan -ENOSYS untuk semua panggilan ke metode ini. Untuk semua versi API perangkat HAL lama yang tidak didukung, API tersebut dapat menampilkan -EOPNOTSUPP. Jika kasus di atas terjadi, metode open() normal (common.methods->open) akan digunakan oleh framework.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: Tidak disediakan oleh modul HAL. Framework tidak akan memanggil fungsi ini.

CAMERA_MODULE_API_VERSION_2_3: Valid untuk dipanggil oleh framework.

Nilai kembalian:

0: Saat perangkat kamera berhasil dibuka.

-ENOSYS Metode ini tidak didukung.

-EOPNOTSUPP: Versi HAL yang diminta tidak didukung oleh metode ini.

-EINVAL: Argumen input tidak valid, yaitu ID tidak valid, dan/atau modul tidak valid.

-EBUSY: Perangkat kamera sudah dibuka untuk ID kamera ini (dengan menggunakan metode ini atau metode common.methods->open), terlepas dari versi HAL perangkat yang dibuka.

-EUSERS: Jumlah maksimum perangkat kamera yang dapat dibuka secara serentak telah dibuka, baik dengan metode ini maupun metode common.methods->open.

Definisi di baris 824 dari file camera_common.h .

void* reserved[5]

Definisi di baris 912 dari file camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Berikan pointer fungsi callback ke modul HAL untuk memberi tahu framework tentang peristiwa modul kamera asinkron. Framework akan memanggil fungsi ini sekali setelah modul HAL kamera awal dimuat, setelah metode get_number_of_cameras() dipanggil untuk pertama kalinya, dan sebelum panggilan lain ke modul.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Tidak disediakan oleh modul HAL. Framework mungkin tidak memanggil fungsi ini.

CAMERA_MODULE_API_VERSION_2_1:

Valid untuk dipanggil oleh framework.

Nilai kembalian:

0: Jika operasi berhasil

-ENODEV: Operasi tidak dapat diselesaikan karena error internal.

-EINVAL: Argumen input tidak valid, yaitu callback null

Definisi di baris 758 dari file camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool enabled)

set_torch_mode:

Mengaktifkan atau menonaktifkan mode senter unit flash yang terkait dengan ID kamera tertentu. Jika operasi berhasil, HAL harus memberi tahu status flash framework dengan memanggil camera_module_callbacks.torch_mode_status_change() dengan status baru.

Perangkat kamera memiliki prioritas yang lebih tinggi untuk mengakses unit flash. Jika ada konflik resource, seperti open() dipanggil untuk membuka perangkat kamera, modul HAL harus memberi tahu framework melalui camera_module_callbacks.torch_mode_status_change() bahwa mode flash telah dinonaktifkan dan status mode flash telah menjadi TORCH_MODE_STATUS_NOT_AVAILABLE. Saat resource untuk mengaktifkan mode flash tersedia lagi, modul HAL harus memberi tahu framework melalui camera_module_callbacks.torch_mode_status_change() bahwa status mode flash telah menjadi TORCH_MODE_STATUS_AVAILABLE_OFF agar set_torch_mode() dipanggil.

Saat framework memanggil set_torch_mode() untuk mengaktifkan mode flash unit, jika HAL tidak dapat mengaktifkan beberapa mode flash secara bersamaan, HAL harus menonaktifkan mode flash yang diaktifkan oleh set_torch_mode() sebelumnya dan memberi tahu framework bahwa status mode flash unit tersebut telah menjadi TORCH_MODE_STATUS_AVAILABLE_OFF.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Tidak disediakan oleh modul HAL. Framework tidak akan memanggil fungsi ini.

CAMERA_MODULE_API_VERSION_2_4: Valid untuk dipanggil oleh framework.

Nilai kembalian:

0: Jika operasi berhasil.

-ENOSYS: Perangkat kamera tidak mendukung operasi ini. Nilai ini ditampilkan jika dan hanya jika android.flash.info.available bernilai salah.

-EBUSY: Perangkat kamera sudah digunakan.

-EUSERS: Resource yang diperlukan untuk mengaktifkan mode senter tidak tersedia, biasanya karena perangkat kamera lain menyimpan resource sehingga penggunaan unit flash tidak dapat dilakukan.

-EINVAL: camera_id tidak valid.

Definisi di baris 878 dari file camera_common.h .


Dokumentasi untuk struct ini dibuat dari file berikut: