Referensi Struktur camera_module
#include < camera_common.h >
Bidang Data | |
hw_modul_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) |
ruang kosong(* | 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 diaktifkan) |
int(* | init )() |
ruang kosong * | dipesan [5] |
Detil Deskripsi
Definisi pada baris 646 dari file camera_common.h .
Dokumentasi Lapangan
hw_module_t umum |
Metode umum modul kamera. Ini harus menjadi anggota pertama camera_module karena pengguna struktur ini akan memberikan hw_module_t ke pointer camera_module dalam konteks yang diketahui bahwa hw_module_t mereferensikan camera_module .
Nilai yang dikembalikan untuk common.methods->open for camera_module adalah:
0: Saat perangkat kamera berhasil dibuka.
-ENODEV: Perangkat kamera tidak dapat dibuka karena kesalahan 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 perangkat HAL dibuka sebagai.
-EUSERS: Jumlah maksimal perangkat kamera yang dapat dibuka secara bersamaan sudah dibuka, baik dengan metode ini atau metode open_legacy.
Semua nilai pengembalian lainnya dari common.methods->open akan diperlakukan sebagai -ENODEV.
Definisi pada baris 674 dari file camera_common.h .
int(* get_camera_info)(int camera_id, struct camera_info *info) |
get_camera_info:
Kembalikan informasi kamera statis untuk perangkat kamera tertentu. Informasi ini mungkin tidak berubah untuk perangkat kamera.
Nilai kembali:
0: Pada operasi yang berhasil
-ENODEV: Informasi tidak dapat diberikan karena kesalahan 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 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 pada baris 727 dari file camera_common.h .
int(* get_number_of_cameras)(void) |
get_number_of_cameras:
Mengembalikan jumlah perangkat kamera yang dapat diakses melalui modul kamera. Perangkat kamera diberi nomor 0 hingga N-1, di mana N adalah nilai yang dikembalikan oleh panggilan ini. Nama perangkat kamera untuk open() hanyalah nomor 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 lebih rendah:
Nilai di sini harus statis, dan tidak dapat berubah setelah panggilan pertama ke metode ini.
CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:
Nilai di sini harus statis, dan hanya boleh menghitung kamera internal, 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 kembalian panggilan ini. Kerangka kerja 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:
Dapatkan metode untuk menanyakan 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 didefinisikan dalam: 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. Kerangka mungkin tidak memanggil fungsi ini.
CAMERA_MODULE_API_VERSION_2_2: Valid untuk dipanggil oleh framework.
Definisi pada baris 778 dari file camera_common.h .
int(* init)() |
init:
Metode ini dipanggil oleh layanan kamera sebelum metode lain dipanggil, tepat setelah pustaka HAL kamera berhasil dimuat. Ini dapat dibiarkan sebagai NULL oleh modul HAL, jika tidak diperlukan inisialisasi.
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 kembali:
0: Pada operasi yang berhasil.
-ENODEV: Inisialisasi tidak dapat diselesaikan karena kesalahan internal. HAL harus diasumsikan dalam keadaan nonfungsional.
Definisi pada 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 lawas tertentu jika beberapa versi HAL API perangkat didukung oleh modul HAL kamera ini. Misalnya, jika modul kamera mendukung CAMERA_DEVICE_API_VERSION_1_0 dan CAMERA_DEVICE_API_VERSION_3_2 API perangkat 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 mengembalikan -ENOSYS untuk semua panggilan ke metode ini. Untuk semua versi API perangkat HAL lama yang tidak didukung, mungkin mengembalikan -EOPNOTSUPP. Ketika kasus di atas terjadi, metode open() normal (common.methods->open) akan digunakan oleh kerangka kerja sebagai gantinya.
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 kembali:
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 perangkat HAL dibuka sebagai.
-EUSERS: Jumlah maksimal perangkat kamera yang dapat dibuka secara bersamaan sudah dibuka, baik dengan metode ini atau metode common.methods->open.
Definisi pada baris 824 dari file camera_common.h .
batal* dipesan[5] |
Definisi pada baris 912 dari file camera_common.h .
int(* set_callbacks)(const camera_module_callbacks_t *callbacks) |
set_callbacks:
Berikan pointer fungsi panggilan balik ke modul HAL untuk menginformasikan kerangka kerja 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. Kerangka mungkin tidak memanggil fungsi ini.
CAMERA_MODULE_API_VERSION_2_1:
Valid untuk dipanggil oleh framework.
Nilai kembali:
0: Pada operasi yang berhasil
-ENODEV: Operasi tidak dapat diselesaikan karena kesalahan internal.
-EINVAL: Argumen input tidak valid, yaitu callback adalah null
Definisi pada baris 758 dari file camera_common.h .
int(* set_torch_mode)(const char *camera_id, bool diaktifkan) |
set_torch_mode:
Menghidupkan atau mematikan mode senter unit lampu kilat yang terkait dengan ID kamera tertentu. Jika operasi berhasil, HAL harus memberi tahu status obor kerangka kerja dengan memanggil camera_module_callbacks.torch_mode_status_change() dengan status baru.
Perangkat kamera memiliki prioritas lebih tinggi untuk mengakses unit lampu kilat. Ketika ada konflik sumber daya, seperti open() dipanggil untuk membuka perangkat kamera, modul HAL harus memberi tahu kerangka kerja melalui camera_module_callbacks.torch_mode_status_change() bahwa mode obor telah dimatikan dan status mode obor telah menjadi TORCH_MODE_STATUS_NOT_AVAILABLE. Ketika sumber daya untuk mengaktifkan mode obor tersedia lagi, modul HAL harus memberi tahu kerangka kerja melalui camera_module_callbacks.torch_mode_status_change() bahwa status mode obor telah menjadi TORCH_MODE_STATUS_AVAILABLE_OFF agar set_torch_mode() dipanggil.
Saat framework memanggil set_torch_mode() untuk mengaktifkan mode senter unit lampu kilat, jika HAL tidak dapat mengaktifkan beberapa mode senter secara bersamaan, HAL harus mematikan mode senter yang diaktifkan oleh panggilan set_torch_mode() sebelumnya dan memberi tahu framework bahwa status mode senter unit lampu kilat itu 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 kembali:
0: Pada operasi yang berhasil.
-ENOSYS: Perangkat kamera tidak mendukung operasi ini. Itu dikembalikan jika dan hanya jika android.flash.info.available salah.
-EBUSY: Perangkat kamera sudah digunakan.
-EUSERS: Sumber daya yang diperlukan untuk mengaktifkan mode senter tidak tersedia, biasanya karena perangkat kamera lain menahan sumber daya untuk membuat penggunaan unit lampu kilat tidak memungkinkan.
-EINVAL: camera_id tidak valid.
Definisi pada baris 878 dari file camera_common.h .
Dokumentasi untuk struct ini dibuat dari file berikut:
- hardware/libhardware/include/hardware/ camera_common.h