Bagikan melalui


Desain terperinci untuk ISV (Profil Kamera V2)

Konsumsi Profil Kamera 1507 untuk ISV menghadirkan tantangan yang signifikan karena sifat kompleks dari bagaimana profil disajikan dan fakta bahwa profil hanyalah himpunan data informatif, alur yang mendasar masih akan memungkinkan kombinasi jenis media dan aliran yang melanggar batasan perangkat keras.

ISV masih berisiko mengonfigurasi alur pengambilan dengan cara yang akan gagal ketika aliran diaktifkan.

Untuk Profil Kamera V2, konfigurasi profil yang dipilih pada waktu inisialisasi objek Pengambilan Media akan dikomunikasikan ke Server Bingkai dan Server Bingkai hanya akan mengekspos kombinasi jenis aliran/media yang valid dalam profil tersebut.

Karena biaya pembuatan beberapa objek Pengambilan Media yang rendah saat dirutekan melalui Server Bingkai, aplikasi dapat membuat beberapa instans objek Media Capture terlebih dahulu menggunakan sumber yang sama. Hanya yang pertama dibuat yang akan menimbulkan latensi pembuatan sumber. Instans berikutnya cukup mengambil sumber yang sudah dibuat di Server Bingkai dan memfilter kumpulan jenis aliran/media berdasarkan profil.

Aplikasi yang ingin mengekspos mode Foto Berkualitas Tinggi dan mode Perekaman Video yang berisi video kecepatan bingkai tinggi atau video 4K, dapat membuat beberapa instans objek Media Capture yang masing-masing dikonfigurasi dengan profil yang berbeda untuk sumber kamera yang sama. Selama hanya salah satu objek Media Capture yang secara aktif melakukan streaming pada waktu tertentu, peralihan antara objek Media Capture menimbulkan sedikit latensi (biasanya biaya beberapa panggilan RPC).

Profil Kamera 1507 mengekspos profil melalui objek MediaCaptureVideoProfile. Objek ini ditemukan melalui pabrik MediaCapture dengan menyediakan ID perangkat tertentu. Tampilan yang berpusat pada perangkat ini berarti aplikasi yang ingin mengaktifkan skenario tertentu harus terlebih dahulu menghitung/menemukan perangkat pilihan dan menggunakannya untuk melakukan iterasi melalui profil yang tersedia.

Profil Kamera V2 memperluas permukaan API untuk terus menyediakan permukaan API yang berpusat pada perangkat, tetapi selain itu, Profil Kamera V2 juga akan memberikan enumerasi profil berbasis skenario.

Alih-alih, memulai dengan kamera tertentu, aplikasi dimulai dengan skenario tertentu. Misalnya, Perekaman Video menggunakan skenario Kamera Menghadap Dunia.

Titik masuk ini menyediakan aplikasi semua kamera yang tersedia yang cocok untuk skenario tersebut. Tergantung pada kekhususan skenario, daftar MediaFrameSourceGroup yang dihasilkan mungkin berisi beberapa entri. Dalam beberapa kasus, mungkin tidak ada entri apa pun. Misalnya, Perekaman Video menggunakan Kamera Menghadap Dunia untuk perangkat All-In-One yang tidak memiliki kamera menghadap dunia akan mengembalikan set kosong.

"Bahasa" yang digunakan untuk menjelaskan skenario memungkinkan fallback berdasarkan kriteria minimum. Itu adalah bahasa yang memungkinkan untuk "Perekaman Video dengan preferensi untuk Kamera Menghadap Dunia dan Resolusi Tertinggi mungkin dengan kecepatan bingkai minimum 30 fps".

Pemfilteran Berbasis Profil

Salah satu keuntungan utama menggunakan arsitektur Frame Server adalah fakta bahwa objek Konteks Klien di Server Bingkai, yang merupakan representasi virtual objek Pengambilan Media pada aplikasi klien, diputar dari sumber fisik.

Ini memungkinkan beberapa instans objek Konteks Klien menggunakan sumber yang sama untuk dikonfigurasi dalam mode operasi tertentu, yang dapat mencakup pemfilteran jenis pin/media yang mungkin bertentangan dengan kasus penggunaan yang mendasar.

Karena sumber perangkat bukan bagian dari Konteks Klien, membuat beberapa instans objek Konteks Klien dengan konfigurasi yang berbeda tidak menimbulkan overhead yang signifikan (sama banyak overhead yang diperlukan untuk melacak struktur data internal).

Latensi untuk membuat/menginisialisasi sumber masih ada untuk Konteks Klien pertama, tetapi setelah dibuat, instans berikutnya dengan konfigurasi yang sama atau konfigurasi yang berbeda hanya akan menimbulkan overhead tambahan untuk membuat struktur data internal.

Diagram berikut menunjukkan bagaimana Pengambilan Media yang dikonfigurasi dengan profil null akan diekspos oleh Frame Server melalui Konteks Klien:

kumpulan profil null.

Dalam diagram di atas, masing-masing sumber mengekspos tiga pin: Pratinjau, Tangkap, dan Foto. Dan karena profil null diatur, Media Capture yang dihasilkan mengekspos semua sembilan pin ke aplikasi. Aplikasi ini dapat memeriksa setiap pin dan setiap jenis media yang tersedia pada setiap pin.

Meskipun ini memberikan fleksibilitas pada aplikasi, ini juga menggabungkan kompleksitas pengelolaan mesin status yang menentukan kombinasi jenis/pin media mana yang dapat diaktifkan secara bersamaan.

Namun, dengan menggunakan Pemfilteran Berbasis Profil:

pemfilteran berbasis profil.

Aplikasi ini dapat membuat beberapa instans Media Capture, masing-masing dikonfigurasi dengan profil tertentu. Dalam diagram di atas, instans profil null dibiarkan sebagai ilustrasi, aplikasi dapat memilih untuk tidak membuat instans profil null.

Objek Pengambilan Media yang lebih rendah masing-masing dikonfigurasi dengan profil tertentu. Berdasarkan informasi profil yang diterbitkan oleh IHV/OEM sumber, alur yang dihasilkan hanya akan menarik sumber yang diperlukan.

Untuk profil HQ Photo World Facing, hanya pin Pratinjau dan Foto dari World Facing RGB (Sumber 3) yang akan diekspos bersama dengan hanya jenis media yang telah ditunjukkan oleh IHV/OEM yang akan berfungsi untuk operasi foto. Ini mengasumsikan IHV/OEM telah menunjukkan bahwa untuk HQ Photo, Pengambilan simultan tidak dimungkinkan. Jika Pengambilan simultan diizinkan, pin Capture, bersama dengan jenis media yang dapat digunakan untuk operasi foto dan perekaman bersamaan akan diekspos.

Untuk Pengguna Perekaman yang Menghadap, hanya pin Pratinjau dan Pengambilan dari User Facing RGB (Sumber 1) yang akan diekspos. Sekali lagi, diagram di atas mengasumsikan bahwa operasi foto tidak dimungkinkan saat pin Capture aktif.

Untuk profil Mixed Reality, streaming video World Facing RGB dan World Facing Perception akan diekspos ke aplikasi klien. Dan sekali lagi, hanya jenis media yang dijamin berfungsi secara bersamaan yang tersedia.

Spesifikasi pengembang Profil Kamera V2