Bagikan melalui


Contoh deklarasi profil (Profil Kamera V2)

Kami mengambil kamera hipotetis yang mendukung profil High Frame Rate baru. Mari kita tentukan beberapa batasan untuk perangkat kita.

  1. Pin pratinjau adalah pin 0. Dalam KSFILTER_DESCRIPTOR yang dideklarasikan oleh driver kamera, ketika array KSPIN_DESCRIPTOR_EX ditentukan, KSPIN_DESCRIPTOR_EX pertama adalah pendeskripsi pin Pratinjau. Demikian pula, pin 1 adalah Pin tangkap dan pin 2 adalah Pin foto.

  2. Karena keterbatasan perangkat keras, perangkat yang dimaksud tidak dapat menangani penskalaan pada kecepatan bingkai 60 fps atau lebih besar. Oleh karena itu, aliran Pratinjau dan Pengambilan harus memiliki resolusi yang sama.

  3. Demikian pula, perangkat juga tidak dapat menangani konversi ruang warna untuk 60 fps atau lebih tinggi.

  4. Kamera mampu streaming video 4K 16x9 pada 60 fps. Kamera juga mampu 3840x2880@60fps (video 4:3 pada 60 fps).

  5. Kamera tidak dapat menyediakan operasi foto apa pun saat berjalan pada 60 fps.

  6. Kami juga akan mendeklarasikan profil Perekaman Video, dibatasi hingga 30 fps tetapi dapat mengizinkan kombinasi/subjenis resolusi apa pun.

  7. Untuk urutan foto profil Perekaman Video tidak didukung (misalnya, operasi foto tunggal berfungsi).

Untuk deklarasi berbasis INF, setiap Filter Tipe Media Pin harus diberi nama entri registri. Nama ini harus MTF# di mana # mewakili nilai bilangan bulat.

Mengingat batasan ini, kita dapat mendeklarasikan profil berikut:

[SampleDriver.CameraInterface.AddReg]
; Declare our schema version.
HKR,,"OEMCameraProfileVersion",0x00010001,2
;
; Declare our HighFrameRate profile with a lock resolution/subtype constraint.
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"
;
; Declare our VideoRecording profile.
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

Dengan mengatur entri registri OEMCameraProfileVersion ke 2, kami menunjukkan kepada alur pengambilan bahwa kami mendukung skema profil berbasis Batasan baru.

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2

Setelah dideklarasikan, semua profil harus disimpan di bawah kunci registri Profil di bawah simpul Antarmuka Perangkat.

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"

Setiap profil harus dikonfigurasi sebagai subkuntangan di bawah kunci Profil, menggunakan ID Profil. ID Profil terdiri dari Jenis Profil, Indeks Profil.

Jenis Profil mungkin salah satu dari jenis profil terkenal berikut atau string {GUID}:

  • KSCAMERAPROFILE_HighQualityPhoto

  • KSCAMERAPROFILE_BalancedVideoAndPhoto

  • KSCAMERAPROFILE_VideoConferencing

  • KSCAMERAPROFILE_PhotoSequence

  • KSCAMERAPROFILE_FaceAuth_Mode

  • KSCAMERAPROFILE_HighFrameRate

  • KSCAMERAPROFILE_HDRWithWCGVideo

  • KSCAMERAPROFILE_HDRWithWCGPhoto

  • KSCAMERAPROFILE_VariablePhotoSequence

  • KSCAMERAPROFILE_VideoHDR8

Indeks Profil mungkin berupa bilangan bulat 32-bit yang tidak ditandatangani kecuali untuk 0xFFFFFFFF. Nilai indeks 0xFFFFFFFF dicadangkan dan tidak boleh digunakan oleh deklarasi IHV/OEM apa pun.

Deklarasi entri Batasan di subkunjuk profil, menunjukkan bahwa kami memiliki Batasan tingkat Profil:

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"

Untuk profil Kecepatan Bingkai Tinggi, LRS;LST menunjukkan bahwa resolusi di semua pin harus sama dan subjenisnya juga harus sama (tidak ada penskalaan atau konversi ruang warna yang diizinkan dari alur pengambilan).

Untuk pin Pratinjau profil Kecepatan Bingkai Tinggi, kami mengizinkan resolusi/kecepatan bingkai apa pun yang tersedia pada pin Pratinjau. Untuk perangkat hipotetis kami, pin Pratinjau tidak akan pernah mengekspos lebih dari 30 fps.

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"

Untuk pin Ambil, kami mengizinkan resolusi apa pun dan kecepatan bingkai apa pun 60 fps atau lebih tinggi.

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"

Meskipun pin Foto tidak tersedia:

[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF1",0,"Pin1:((RES==;FRT>=60,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","MTF2",0,"Pin2:(!)"

Selain profil High Frame Rate, kami juga menyediakan profil Perekaman Video standar.

HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

Sekali lagi, kami tidak memiliki batasan pada pin Pratinjau karena kamera hipotetis kami hanya mengekspos pratinjau 30 fps hanya dengan jenis media yang dijamin bersamaan dalam skenario Perekaman Video atau Kecepatan Bingkai Tinggi.

HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

Tetapi untuk pin Capture, kita perlu membatasi ini ke jenis media 30 fps karena kita tidak dapat mendukung kecepatan bingkai yang lebih tinggi untuk resolusi yang berbeda antara operasi Pratinjau dan Ambil atau Foto.

HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

Untuk pin Foto, kami menyatakan tidak ada dukungan Urutan Foto dengan mendeklarasikan kontrol Urutan Foto sebagai diblokir untuk profil ini.

HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","BlockedControls",0,"PHSEQ"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF0",0,"Pin0:((RES==;FRT==;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF1",0,"Pin1:((RES==;FRT<=30,1;SUT==ALL))"
HKR,"Profiles\KSCAMERAPROFILE_VideoRecording,0","MTF2",0,"Pin2:((RES==;FRT==;SUT==ALL))"

Spesifikasi pengembang Profil Kamera V2