Referensi Struktur camera_info

Referensi Struktur camera_info

#include < camera_common.h >

Bidang Data

ke dalam menghadapi
ke dalam orientasi
uint32_t versi_perangkat
const kamera_metadata_t * static_camera_characteristics
ke dalam sumber daya_biaya
karakter ** perangkat_konflik
ukuran_t konflik_perangkat_panjang

Detil Deskripsi

Definisi pada baris 161 file camera_common.h .

Dokumentasi Lapangan

char** perangkat_konflik

Serangkaian ID perangkat kamera yang direpresentasikan sebagai string yang diakhiri dengan NULL yang menunjukkan perangkat lain yang tidak dapat dibuka secara bersamaan saat perangkat kamera ini sedang digunakan.

Bidang ini dimaksudkan untuk digunakan untuk menunjukkan bahwa perangkat kamera ini merupakan gabungan dari beberapa perangkat kamera lainnya, atau memiliki ketergantungan perangkat keras yang melarang penggunaan secara bersamaan. Jika tidak ada ketergantungan, NULL dapat dikembalikan di bidang ini untuk menunjukkan hal ini.

Layanan kamera tidak akan pernah membuka perangkat apa pun dalam daftar ini secara bersamaan saat perangkat kamera ini terbuka.

String yang ditunjukkan dalam bidang ini tidak akan dibersihkan oleh layanan kamera, dan harus tetap ada selama perangkat ini dicolokkan.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau lebih rendah:

Tidak valid. Dapat diasumsikan NULL. Jangan membaca bidang ini.

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Selalu valid.

Definisi pada baris 404 file camera_common.h .

size_t konflik_perangkat_panjang

Panjang larik yang diberikan di bidangconflict_devices.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau lebih rendah:

Tidak valid. Dapat diasumsikan 0. Jangan baca kolom ini.

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Selalu valid.

Definisi pada baris 419 file camera_common.h .

uint32_t perangkat_version

Nilai camera_device_t.common.version.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

KAMERA_MODULE_API_VERSION_1_0:

Tidak valid. Dapat diasumsikan sebagai CAMERA_DEVICE_API_VERSION_1_0. Jangan membaca bidang ini.

CAMERA_MODULE_API_VERSION_2_0 atau lebih tinggi:

Selalu valid

Definisi pada baris 219 file camera_common.h .

menghadap ke dalam

Arah menghadap kamera. Lihat system/core/include/system/camera.h untuk definisi menghadap kamera.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau lebih rendah:

Seharusnya CAMERA_FACING_BACK atau CAMERA_FACING_FRONT.

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Seharusnya CAMERA_FACING_BACK, CAMERA_FACING_FRONT atau CAMERA_FACING_EXTERNAL.

Definisi pada baris 177 file camera_common.h .

orientasi int

Orientasi gambar kamera. Nilainya adalah sudut yang diperlukan untuk memutar gambar kamera searah jarum jam agar dapat ditampilkan dengan benar pada tampilan dalam orientasi alaminya. Seharusnya 0, 90, 180, atau 270.

Misalnya, suatu perangkat memiliki layar yang tinggi secara alami. Sensor kamera menghadap ke belakang dipasang dalam lanskap. Anda sedang melihat layar. Jika sisi atas sensor kamera sejajar dengan tepi kanan layar dalam orientasi alami, nilainya harus 90. Jika sisi atas sensor kamera depan sejajar dengan kanan layar, nilainya harus menjadi 270.

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau lebih rendah:

Berlaku di semua versi camera_module .

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Valid jika menghadap kamera adalah CAMERA_FACING_BACK atau CAMERA_FACING_FRONT, tidak valid jika menghadap kamera adalah CAMERA_FACING_EXTERNAL.

Definisi pada baris 202 file camera_common.h .

int sumber daya_biaya

Total "biaya" sumber daya dalam penggunaan kamera ini, direpresentasikan sebagai nilai bilangan bulat dalam kisaran [0, 100] di mana 100 mewakili total penggunaan sumber daya bersama yang merupakan hambatan pembatas subsistem kamera. Ini mungkin perkiraan yang sangat kasar, dan digunakan sebagai petunjuk bagi layanan kamera untuk menentukan kapan harus melarang beberapa aplikasi membuka kamera berbeda secara bersamaan yang diiklankan oleh layanan kamera.

Layanan kamera harus dapat secara bersamaan membuka dan menggunakan kombinasi perangkat kamera apa pun yang diekspos oleh HAL jika jumlah biaya sumber daya kamera ini <= 100. Untuk menentukan biaya, setiap perangkat kamera harus diasumsikan telah dikonfigurasi dan beroperasi pada pengaturan framerate dan ukuran streaming yang memakan sumber daya secara maksimal yang tersedia dalam pengaturan konfigurasi yang diekspos untuk perangkat tersebut melalui metadata kamera.

Layanan kamera mungkin masih mencoba membuka kombinasi perangkat kamera secara bersamaan dengan total biaya sumber daya > 100. Ini mungkin berhasil atau gagal. Jika ini berhasil, kombinasi konfigurasi yang tidak didukung karena keterbatasan sumber daya karena memiliki beberapa perangkat terbuka akan gagal selama panggilan konfigurasi. Jika total biaya sumber daya <= 100, pembukaan dan konfigurasi tidak akan pernah gagal untuk pengaturan konfigurasi streaming atau kemampuan perangkat lain yang biasanya berhasil untuk perangkat ketika perangkat tersebut merupakan satu-satunya perangkat kamera yang terbuka.

Bidang ini akan digunakan untuk menentukan apakah aplikasi latar belakang diperbolehkan menggunakan perangkat kamera ini sementara aplikasi lain menggunakan perangkat kamera lain. Catatan: beberapa aplikasi tidak akan pernah diizinkan oleh layanan kamera untuk membuka perangkat kamera yang sama secara bersamaan.

Contoh kasus penggunaan:

Mantan. 1: Perangkat Kamera 0 = Kamera Belakang Perangkat Kamera 1 = Kamera Depan

  • Penggunaan kedua perangkat kamera menyebabkan perlambatan framerate yang besar karena terbatasnya bandwidth ISP.

Konfigurasi:

Perangkat Kamera 0 - resource_cost = 51 perangkat_konflik = null Perangkat Kamera 1 - resource_cost = 51 perangkat_konflik = null

Hasil:

Karena jumlah biaya sumber daya > 100, jika aplikasi dengan prioritas lebih tinggi membuka salah satu perangkat, tidak ada aplikasi dengan prioritas lebih rendah yang diizinkan oleh layanan kamera untuk membuka salah satu perangkat. Jika aplikasi berprioritas lebih rendah menggunakan perangkat yang kemudian coba dibuka oleh perangkat berprioritas lebih tinggi, aplikasi berprioritas lebih rendah akan terpaksa memutuskan sambungan perangkat tersebut.

Jika aplikasi dengan prioritas tertinggi dipilih, aplikasi tersebut mungkin masih mencoba membuka kedua perangkat (karena perangkat ini tidak terdaftar sebagai perangkat yang bertentangan di bidang perangkat_konflik), namun penggunaan perangkat ini mungkin gagal dalam panggilan terbuka atau konfigurasi.

Mantan. 2: Perangkat Kamera 0 = Kamera Belakang Kiri Perangkat Kamera 1 = Kamera Belakang Kanan Perangkat Kamera 2 = Kamera stereo gabungan yang menggunakan sensor kamera belakang kanan dan kiri yang digunakan oleh perangkat 0, dan 1 Perangkat Kamera 3 = Kamera Depan

  • Karena kendala perangkat keras, maksimal dua kamera dapat dibuka sekaligus. Kamera stereo gabungan tidak boleh digunakan secara bersamaan dengan salah satu dari dua perangkat kamera belakang (perangkat 0, 1), dan biasanya memerlukan terlalu banyak bandwidth untuk digunakan secara bersamaan dengan kamera depan (perangkat 3).

Konfigurasi:

Perangkat Kamera 0 - biaya_sumber daya = 50 perangkat_konflik = { 2 } Perangkat Kamera 1 - biaya_sumber daya = 50 perangkat_konflik = { 2 } Perangkat Kamera 2 - biaya_sumber daya = 100 perangkat_konflik = { 0, 1 } Perangkat Kamera 3 - biaya_sumber daya = 50 perangkat_konflik = null

Hasil:

Berdasarkan kolomconflict_devices, layanan kamera menjamin bahwa rangkaian perangkat terbuka berikut tidak akan diizinkan: { 1, 2 }, { 0, 2 }.

Berdasarkan kolom resource_cost, jika aplikasi latar depan berprioritas tinggi menggunakan perangkat kamera 0, aplikasi latar belakang akan diizinkan membuka perangkat kamera 1 atau 3 (tetapi akan terpaksa memutuskan sambungannya lagi jika aplikasi latar depan membuka perangkat lain).

Aplikasi dengan prioritas tertinggi mungkin masih mencoba membuka perangkat 0, 2, dan 3 secara bersamaan, namun HAL mungkin gagal dalam membuka atau mengonfigurasi panggilan untuk kombinasi ini.

Mantan. 3: Perangkat Kamera 0 = Kamera Belakang Perangkat Kamera 1 = Kamera Depan Perangkat Kamera 2 = Kamera Depan berdaya rendah yang menggunakan sensor yang sama dengan perangkat 1, namun hanya memaparkan resolusi aliran gambar yang dapat digunakan dalam mode daya rendah

  • Penggunaan kedua kamera depan (perangkat 1, 2) secara bersamaan tidak mungkin dilakukan karena sensor fisik digunakan bersama. Penggunaan kamera belakang dan kamera depan "berdaya tinggi" (perangkat 1) mungkin tidak dapat dilakukan pada beberapa konfigurasi streaming karena keterbatasan perangkat keras, namun opsi kamera depan "berdaya rendah" selalu dapat digunakan karena memiliki perangkat keras khusus yang khusus.

    Konfigurasi:

    Perangkat Kamera 0 - sumber daya_biaya = 100 perangkat_konflik = null Perangkat Kamera 1 - biaya_sumber daya = 100 perangkat_konflik = { 2 } Perangkat Kamera 2 - biaya_sumber daya = 0 perangkat_konflik = { 1 } Hasil:

    Berdasarkan kolomconflict_devices, layanan kamera menjamin bahwa rangkaian perangkat terbuka berikut tidak akan diizinkan: { 1, 2 }.

    Berdasarkan kolom resource_cost, hanya aplikasi dengan prioritas tertinggi yang dapat mencoba membuka perangkat 0 dan 1 secara bersamaan. Jika aplikasi dengan prioritas lebih tinggi tidak menggunakan perangkat 1 atau 2, aplikasi latar belakang berprioritas rendah dapat membuka perangkat 2 (tetapi akan terpaksa memutuskan sambungannya jika aplikasi dengan prioritas lebih tinggi kemudian membuka perangkat 1 atau 2).

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_3 atau lebih rendah:

Tidak valid. Dapat diasumsikan 100. Jangan baca kolom ini.

CAMERA_MODULE_API_VERSION_2_4 atau lebih tinggi:

Selalu valid.

Definisi pada baris 376 file camera_common.h .

const camera_metadata_t * static_camera_characteristics

Karakteristik tetap kamera, yang mencakup semua metadata kamera statis yang ditentukan di system/media/camera/docs/docs.html. Ini harus berupa buffer metadata yang diurutkan, dan tidak boleh diubah atau dibebaskan oleh pemanggil. Pointer harus tetap valid selama masa pakai modul kamera, dan nilai di dalamnya tidak boleh berubah setelah dikembalikan oleh get_camera_info().

Informasi versi (berdasarkan camera_module_t.common.module_api_version):

KAMERA_MODULE_API_VERSION_1_0:

Tidak valid. Karakteristik tambahan tidak tersedia. Jangan membaca bidang ini.

CAMERA_MODULE_API_VERSION_2_0 atau lebih tinggi:

Valid jika versi_perangkat >= CAMERA_DEVICE_API_VERSION_2_0. Jangan membaca sebaliknya.

Definisi pada baris 241 file camera_common.h .


Dokumentasi untuk struct ini dihasilkan dari file berikut: