Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Prendiamo una fotocamera ipotetica che supporti il nuovo profilo High Frame Rate. Definiamo alcuni vincoli per il dispositivo.
Il pin di anteprima è pin 0. Nella KSFILTER_DESCRIPTOR dichiarata dal driver della fotocamera, quando viene definita la matrice di KSPIN_DESCRIPTOR_EX, il primo KSPIN_DESCRIPTOR_EX è il descrittore del pin di anteprima. Analogamente, il pin 1 è Capture pin e pin 2 è photo pin.
A causa delle limitazioni hardware, il dispositivo in questione non può gestire la scalabilità a velocità di fotogrammi di 60 fps o superiore. Pertanto, sia i flussi di anteprima che di acquisizione devono avere la stessa risoluzione.
Analogamente, il dispositivo non può gestire la conversione dello spazio dei colori per 60 fps o superiore.
La fotocamera è in grado di trasmettere video 4K 16x9 a 60 fps. La fotocamera è anche in grado di 3840x2880@60fps (video 4:3 a 60 fps).
La fotocamera non è in grado di fornire operazioni fotografiche durante l'esecuzione a 60 fps.
Dichiareremo anche un profilo di registrazione video, limitato a 30 fps, ma potrebbe consentire qualsiasi combinazione di risoluzione/sottotipi.
Per la sequenza di foto del profilo di registrazione video non è supportata (ad esempio, le singole operazioni fotografico funzionano).
Per la dichiarazione basata su INF, a ogni filtro del tipo di supporto pin deve essere assegnato un nome di voce del Registro di sistema. Questo nome deve essere MTF# dove # rappresenta un valore intero.
Considerati questi vincoli, è possibile dichiarare il profilo seguente:
[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))"
Impostando la voce del Registro di sistema OEMCameraProfileVersion su 2, si indica alla pipeline di acquisizione che supportiamo il nuovo schema del profilo basato su vincoli.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
Una volta dichiarati, tutti i profili devono essere archiviati nella chiave del Registro di sistema Profili nel nodo Interfaccia dispositivo.
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
Ogni profilo deve essere configurato come sottochiave nella chiave Profili, usando l'ID profilo. Un ID profilo è costituito da Tipo di profilo, Indice profilo.
Il tipo di profilo può essere uno dei tipi di profilo noti seguenti o una stringa {GUID}:
KSCAMERAPROFILE_HighQualityPhoto
KSCAMERAPROFILE_BalancedVideoAndPhoto
KSCAMERAPROFILE_VideoConferencing
KSCAMERAPROFILE_PhotoSequence
KSCAMERAPROFILE_FaceAuth_Mode
KSCAMERAPROFILE_HighFrameRate
KSCAMERAPROFILE_HDRWithWCGVideo
KSCAMERAPROFILE_HDRWithWCGPhoto
KSCAMERAPROFILE_VariablePhotoSequence
KSCAMERAPROFILE_VideoHDR8
L'indice del profilo può essere qualsiasi intero senza segno a 32 bit, ad eccezione di 0xFFFFFFFF. Il valore di indice di 0xFFFFFFFF è riservato e non deve essere utilizzato da alcuna dichiarazione IHV/OEM.
La dichiarazione della voce Constraint nella sottochiave del profilo indica che è presente un vincolo a livello di profilo:
[SampleDriver.CameraInterface.AddReg]
HKR,,"OEMCameraProfileVersion",0x00010001,2
HKR,"Profiles\KSCAMERAPROFILE_HighFrameRate,0","Constraint",0,"LRS;LST"
Per il profilo Frequenza fotogrammi elevata, il LRS;LST indica che la risoluzione in tutti i pin deve essere uguale e il sottotipo deve essere uguale (non è consentita alcuna conversione dello spazio di ridimensionamento né dello spazio dei colori dalla pipeline di acquisizione).
Per il pin di anteprima del profilo a frequenza elevata dei fotogrammi, è possibile ottenere qualsiasi risoluzione/frequenza dei fotogrammi disponibile nel pin di anteprima. Per il dispositivo ipotetico, il pin di anteprima non esporrà mai più di 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:(!)"
Per il pin Capture, consentiamo qualsiasi risoluzione e qualsiasi frequenza di fotogrammi 60 fps o superiore.
[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:(!)"
Anche se il pin foto non è disponibile:
[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:(!)"
Oltre al profilo ad alta frequenza di fotogrammi, forniamo anche un profilo di registrazione video standard.
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))"
Ancora una volta, non abbiamo vincoli sul pin di anteprima, poiché la fotocamera ipotetica espone solo l'anteprima di 30 fps con solo i tipi di supporti che sono garantiti per essere simultanei in entrambi gli scenari di registrazione video o frequenza dei fotogrammi elevata.
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))"
Per il pin di acquisizione, tuttavia, è necessario limitare questo tipo di supporto a 30 fps perché non è possibile supportare frequenze di fotogrammi più elevate per risoluzioni diverse tra le operazioni Preview e Capture e Photo.
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))"
Per il pin foto, non dichiariamo alcun supporto della sequenza di foto dichiarando il controllo Sequenza foto come bloccato per questo profilo.
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))"
Articoli correlati
specifica dello sviluppatore del profilo della fotocamera V2