샘플 프로필 선언(카메라 프로필 V2)
새로운 높은 프레임 속도 프로필을 지원하는 가상 카메라를 사용합니다. 디바이스에 대한 몇 가지 제약 조건을 정의해 보겠습니다.
미리 보기 핀은 핀 0입니다. 카메라 드라이버에서 선언한 KSFILTER_DESCRIPTOR KSPIN_DESCRIPTOR_EX 배열이 정의되면 첫 번째 KSPIN_DESCRIPTOR_EX 미리 보기 핀의 설명자입니다. 마찬가지로 핀 1은 캡처 핀이고 핀 2는 사진 핀입니다.
하드웨어 제한으로 인해 해당 디바이스는 프레임 속도 60fps 이상으로 크기 조정을 처리할 수 없습니다. 따라서 미리 보기 및 캡처 스트림 모두 동일한 해상도를 가져야 합니다.
마찬가지로 디바이스는 60fps 이상에 대한 색 공간 변환도 처리할 수 없습니다.
카메라는 60fps에서 4K 16x9 비디오를 스트리밍할 수 있습니다. 카메라는 3840x2880@60fps 수 있습니다(60fps에서 4:3 비디오).
카메라는 60fps로 실행할 때 사진 작업을 제공할 수 없습니다.
또한 비디오 녹화 프로필을 30fps로 제한하지만 해상도 조합/하위 형식을 허용할 수도 있습니다.
비디오 녹화 프로필 사진 시퀀스는 지원되지 않습니다(예: 단일 사진 작업 작업).
INF 기반 선언의 경우 모든 핀 미디어 유형 필터에 레지스트리 항목 이름이 할당되어야 합니다. 이 이름은 MTF#이어야 합니다. 여기서 #은 정수 값을 나타냅니다.
이러한 제약 조건을 감안할 때 다음 프로필을 선언할 수 있습니다.
[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))"
OEMCameraProfileVersion 레지스트리 항목을 2로 설정하면 캡처 파이프라인에 새 제약 조건 기반 프로필 스키마를 지원함을 나타냅니다.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
선언되면 모든 프로필은 디바이스 인터페이스 노드 아래의 Profiles 레지스트리 키 아래에 저장되어야 합니다.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
각 프로필은 프로필 ID를 사용하여 프로필 키 아래에 하위 키로 구성해야 합니다. 프로필 ID는 프로필 유형, 프로필 인덱스로 구성됩니다.
프로필 유형은 다음과 같은 잘 알려진 프로필 형식 또는 {GUID} 문자열 중 하나일 수 있습니다.
KSCAMERAPROFILE_HighQualityPhoto
KSCAMERAPROFILE_BalancedVideoAndPhoto
KSCAMERAPROFILE_VideoConferencing
KSCAMERAPROFILE_PhotoSequence
KSCAMERAPROFILE_FaceAuth_Mode
KSCAMERAPROFILE_HighFrameRate
KSCAMERAPROFILE_HDRWithWCGVideo
KSCAMERAPROFILE_HDRWithWCGPhoto
KSCAMERAPROFILE_VariablePhotoSequence
KSCAMERAPROFILE_VideoHDR8
프로필 인덱스는 0xFFFFFFFF 제외하고 부호 없는 32비트 정수일 수 있습니다. 0xFFFFFFFF 인덱스 값은 예약되어 있으며 IHV/OEM 선언에서 사용해서는 안 됩니다.
프로필 하위 키에서 제약 조건 항목의 선언은 프로필 수준 제약 조건이 있음을 나타냅니다.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
높은 프레임 속도 프로필 LRS;LST
의 경우 는 모든 핀의 해상도가 동일해야 하며 하위 형식도 동일해야 하며 캡처 파이프라인에서 크기 조정이나 색 공간 변환이 허용되지 않음을 나타냅니다.
높은 프레임 속도 프로필의 미리 보기 핀의 경우 미리 보기 핀에서 사용할 수 있는 해상도/프레임 속도를 허용합니다. 가상 디바이스의 경우 미리 보기 핀은 30fps를 초과하지 않습니다.
[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:(!)"
캡처 핀의 경우 해상도와 프레임 속도 60fps 이상을 허용합니다.
[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:(!)"
사진 핀을 사용할 수 없는 경우:
[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:(!)"
높은 프레임 속도 프로필 외에도 표준 비디오 녹화 프로필도 제공합니다.
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))"
가상 카메라는 비디오 녹화 또는 높은 프레임 속도 시나리오에서 동시에 보장되는 미디어 유형만 있는 30fps 미리 보기만 노출하므로 미리 보기 핀에 대한 제약 조건이 없습니다.
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))"
그러나 캡처 핀의 경우 미리 보기와 캡처 또는 사진 작업 간에 다양한 해상도에 대해 더 높은 프레임 속도를 지원할 수 없으므로 이를 30fps 미디어 유형으로 제한해야 합니다.
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))"
사진 핀의 경우 사진 시퀀스 컨트롤을 이 프로필에 대해 차단되는 것으로 선언하여 사진 시퀀스 지원을 선언하지 않습니다.
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))"