Referensi Struktur camera_module

Referensi Struktur camera_module

#include < camera_common.h >

Bidang Data

hw_modul_t umum
ke dalam(* dapatkan_number_of_cameras )(batal)
ke dalam(* get_camera_info )(int camera_id, struktur camera_info *info)
ke dalam(* set_callbacks )(const camera_module_callbacks_t *panggilan balik)
ruang kosong(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
ke dalam(* open_legacy )(const struct hw_module_t *modul, const char *id, uint32_t halVersion, struct hw_device_t **perangkat)
ke dalam(* set_torch_mode )(const char *camera_id, bool diaktifkan)
ke dalam(* inisiasi )()
ruang kosong * dipesan [5]

Detil Deskripsi

Definisi pada baris 646 file camera_common.h .

Dokumentasi Lapangan

Metode umum modul kamera. Ini harus menjadi anggota pertama dari camera_module karena pengguna struktur ini akan melemparkan hw_module_t ke penunjuk camera_module dalam konteks di mana diketahui bahwa hw_module_t merujuk pada camera_module .

Nilai kembalian untuk common.methods->open untuk 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 telah dibuka untuk id kamera ini (dengan menggunakan metode ini atau open_legacy), terlepas dari versi HAL perangkat yang dibuka.

-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 file camera_common.h .

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

dapatkan_kamera_info:

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

Nilai pengembalian:

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 file camera_common.h .

int(*get_number_of_cameras)(batal)

dapatkan_jumlah_kamera:

Mengembalikan jumlah perangkat kamera yang dapat diakses melalui modul kamera. Perangkat kamera diberi nomor 0 hingga N-1, dengan N adalah nilai yang dikembalikan 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 lebih rendah:

Nilai di sini harus statis, dan tidak dapat diubah setelah pemanggilan pertama ke metode ini.

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Nilai di sini harus statis, dan harus menghitung hanya 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 panggilan balik camera_device_status_change untuk mengelola jumlah kamera eksternal.

Definisi pada baris 701 file camera_common.h .

batal(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

dapatkan_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 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 kerangka kerja.

Definisi pada baris 778 file camera_common.h .

ke dalam(* init)()

init:

Metode ini dipanggil oleh layanan kamera sebelum metode lain dipanggil, tepat setelah perpustakaan HAL kamera berhasil dimuat. Ini mungkin 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 kerangka kerja satu kali setelah modul HAL dimuat, sebelum metode modul HAL lainnya dipanggil.

Nilai pengembalian:

0: Pada operasi yang berhasil.

-ENODEV: Inisialisasi tidak dapat diselesaikan karena kesalahan internal. HAL harus diasumsikan dalam keadaan tidak berfungsi.

Definisi pada baris 909 file camera_common.h .

int(* open_legacy)(const struct hw_module_t *modul, const char *id, uint32_t halVersion, struct hw_device_t **perangkat)

warisan_terbuka:

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, kerangka kerja dapat memanggil fungsi ini untuk membuka perangkat kamera sebagai perangkat CAMERA_DEVICE_API_VERSION_1_0.

Ini adalah metode opsional. Modul Camera HAL 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 akan menampilkan -EOPNOTSUPP. Ketika 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 kerangka kerja.

Nilai pengembalian:

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 telah dibuka untuk id kamera ini (dengan menggunakan metode ini atau metode common.methods->open), terlepas dari versi HAL perangkat yang dibuka.

-EUSERS: Jumlah maksimal perangkat kamera yang dapat dibuka secara bersamaan telah dibuka, baik dengan metode ini atau metode common.methods->open.

Definisi pada baris 824 file camera_common.h .

batal* dicadangkan[5]

Definisi pada baris 912 file camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *panggilan balik)

set_panggilan balik:

Memberikan penunjuk fungsi panggilan balik ke modul HAL untuk menginformasikan kerangka peristiwa modul kamera asinkron. Framework akan memanggil fungsi ini satu kali 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.

KAMERA_MODULE_API_VERSION_2_1:

Valid untuk dipanggil oleh framework.

Nilai pengembalian:

0: Pada operasi yang berhasil

-ENODEV: Operasi tidak dapat diselesaikan karena kesalahan internal.

-EINVAL: Argumen input tidak valid, yaitu callbacknya null

Definisi pada baris 758 file camera_common.h .

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

set_torch_mode:

Mengaktifkan atau menonaktifkan mode obor pada 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 dalam 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() dapat dipanggil.

Ketika kerangka kerja memanggil set_torch_mode() untuk mengaktifkan mode obor pada unit lampu kilat, jika HAL tidak dapat mengaktifkan beberapa mode obor secara bersamaan, HAL harus mematikan mode obor yang diaktifkan oleh panggilan set_torch_mode() sebelumnya dan memberi tahu kerangka kerja bahwa status mode obor pada unit lampu kilat 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 kerangka kerja.

Nilai pengembalian:

0: Pada operasi yang berhasil.

-ENOSYS: Perangkat kamera tidak mendukung operasi ini. Ini 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 memiliki sumber daya sehingga unit lampu kilat tidak dapat digunakan.

-EINVAL: camera_id tidak valid.

Definisi pada baris 878 file camera_common.h .


Dokumentasi untuk struct ini dihasilkan dari file berikut: