Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wir nehmen eine hypothetische Kamera, die das neue High Frame Rate-Profil unterstützt. Lassen Sie uns einige Einschränkungen für unser Gerät definieren.
Die Vorschau-Pin ist "0". In der vom Kameratreiber deklarierten KSFILTER_DESCRIPTOR, wenn das Array von KSPIN_DESCRIPTOR_EX definiert wird, ist die erste KSPIN_DESCRIPTOR_EX der Deskriptor der Vorschau-Pin. Auf ähnliche Weise ist Pin 1 Aufnahme-Pin und Pin 2 ist Foto-Pin.
Aufgrund von Hardwareeinschränkungen kann das betreffende Gerät die Skalierung mit 60 fps oder höher nicht verarbeiten. Daher müssen sowohl der Vorschaudatenstrom als auch der Aufnahmedatenstrom dieselbe Auflösung aufweisen.
Auf ähnliche Weise kann das Gerät auch keine Farbraumkonvertierung für 60 fps oder höher verarbeiten.
Kamera ist in der Lage, 4K 16x9 Video mit 60 fps zu streamen. Kamera ist auch in der Lage, 3840x2880@60fps (4:3 Video bei 60 fps).
Die Kamera kann keine Fotovorgänge bereitstellen, wenn sie mit 60 fps ausgeführt werden.
Außerdem deklarieren wir ein Videoaufzeichnungsprofil, das auf 30 fps beschränkt ist, aber möglicherweise kombinations-/untertypen für Auflösungen zulassen kann.
Für die Videoaufzeichnungsprofilfotosequenz wird nicht unterstützt (z. B. einzelne Fotovorgänge funktionieren).
Für DIE INF-basierte Deklaration muss jedem Pin Media Type Filter ein Registrierungseintragsname zugewiesen werden. Dieser Name muss MTF# sein, wobei #einen ganzzahligen Wert darstellt.
Aufgrund dieser Einschränkungen können wir das folgende Profil deklarieren:
[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))"
Durch Festlegen des OEMCameraProfileVersion-Registrierungseintrags auf 2 geben wir die Aufnahmepipeline an, die das neue einschränkungsbasierte Profilschema unterstützt.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
Nach der Deklaration müssen alle Profile unter dem Registrierungsschlüssel "Profiles" unter dem Knoten "Device Interface" gespeichert werden.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
Jedes Profil muss mit der Profil-ID als Unterschlüssel unter dem Schlüssel "Profile" konfiguriert werden. Eine Profil-ID besteht aus Profiltyp, Profilindex.
Der Profiltyp kann eine der folgenden bekannten Profiltypen oder eine {GUID}-Zeichenfolge sein:
KSCAMERAPROFILE_HighQualityPhoto
KSCAMERAPROFILE_BalancedVideoAndPhoto
KSCAMERAPROFILE_VideoConferencing
KSCAMERAPROFILE_PhotoSequence
KSCAMERAPROFILE_FaceAuth_Mode
KSCAMERAPROFILE_HighFrameRate
KSCAMERAPROFILE_HDRWithWCGVideo
KSCAMERAPROFILE_HDRWithWCGPhoto
KSCAMERAPROFILE_VariablePhotoSequence
KSCAMERAPROFILE_VideoHDR8
Der Profilindex kann eine beliebige 32-Bit-ganzzahl ohne Vorzeichen sein, mit Ausnahme von 0xFFFFFFFF. Der Indexwert von 0xFFFFFFFF ist reserviert und darf nicht von einer IHV/OEM-Deklaration verwendet werden.
Die Deklaration des Einschränkungseintrags im Profilunterschlüssel gibt an, dass wir eine Einschränkung auf Profilebene haben:
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
Für das Profil mit hoher Framerate gibt die LRS;LST an, dass die Auflösung für alle Pins identisch sein muss und der Untertyp ebenfalls identisch sein muss (keine Skalierungs- oder Farbraumkonvertierung ist von der Aufnahmepipeline zulässig).
Für den Vorschau-Pin des Profils mit hoher Framerate erlauben wir alle auflösungs-/bildfrequenzen, die auf dem Vorschau-Pin verfügbar sind. Für unser hypothetisches Gerät macht der Vorschau-Pin nie mehr als 30 fps verfügbar.
[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:(!)"
Für den Aufnahme-Pin erlauben wir jede Auflösung und jede Bildfrequenz von 60 fps oder höher.
[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:(!)"
Fotonadel ist zwar nicht verfügbar:
[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:(!)"
Zusätzlich zum High Frame Rate-Profil bieten wir auch ein standard-Videoaufzeichnungsprofil an.
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))"
Auch hier gibt es keine Einschränkungen für den Vorschau-Pin, da unsere hypothetische Kamera nur eine Vorschau von 30 fps mit nur Medientypen verfügbar macht, die in Szenarien mit Videoaufzeichnung oder hoher Framerate garantiert gleichzeitig sind.
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))"
Für den Aufnahme-Pin müssen wir dies jedoch auf 30 fps-Medientypen beschränken, da wir keine höheren Bildfrequenzen für unterschiedliche Auflösungen zwischen Vorschau und Aufnahme oder Fotovorgängen unterstützen können.
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))"
Für die Fotonadel deklarieren wir keine Fotosequenzunterstützung, indem wir das Photo Sequence-Steuerelement als für dieses Profil blockiert deklarieren.
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))"