KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY
L'ID proprietà KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY definito in KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY viene usato per ottenere le funzionalità per frame dal driver. Si tratta di un controllo GET solo; il driver deve avere esito negativo in qualsiasi chiamata SET.
Riepilogo utilizzo
Per eseguire una query per ogni impostazione di frame con il driver, il controllo della proprietà KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY viene inviato al driver insieme a un buffer di dati. In una chiamata GET il driver riempie il payload di funzionalità per impostazione frame nel buffer dati fornito usando il layout di formato specificato di seguito.
Intestazione della funzionalità (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
Intestazione elemento (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Intestazione elemento (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Payload dell'elemento (KSPROPERTY_STEPPING_LONG o KSPROPERTY_STEPPING_LONGLONG)
Il payload della funzionalità deve iniziare con un'intestazione di funzionalità. Ogni elemento di funzionalità deve iniziare con un'intestazione di elemento. Se un elemento di funzionalità ha un payload, l'intestazione dell'elemento deve essere seguita da un payload dell'elemento corrispondente.
In una chiamata GET viene inviato un buffer di lunghezza zero al driver prima di scoprire le dimensioni del buffer di dati necessarie per contenere l'intero payload della funzionalità. In risposta alla chiamata, il driver deve restituire STATUS_BUFFER_OVERFLOW con le dimensioni del buffer di funzionalità necessarie che devono essere almeno le dimensioni di KSCAMERA_PERFRAMESETTING_CAP_HEADER.
Di seguito sono riportate le descrizioni dei campi KSCAMERA_PERFRAMESETTING_CAP_HEADER nel contesto dei tipi di elemento definiti nell'enumerazione KSCAMERA_PERFRAMESETTING_ITEM_TYPE . Il campo payload rappresenta le strutture del payload dell'elemento dopo la struttura KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER .
Elemento tempo di esposizione
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER + le dimensioni di una struttura KSPROPERTY_STEPPING_LONGLONG se è supportata la modalità manuale.
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME.
Flag
Contiene i flag disponibili. Questo campo deve contenere i flag disponibili eseguendo un OR bit per bit dei flag definiti in ksmedia.h.
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
Se il driver supporta la modalità manuale, è necessario specificare un payload di intervallo in KSPROPERTY_STEPPING_LONGLONG. Bounds.SignedMinimum\SignedMaxmum e KSPROPERTY_STEPPING_LONGLONG. PassaggioDelta
Elemento Flash
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FLASH
Flag
Contiene i flag disponibili. Questo campo deve contenere i flag disponibili eseguendo un OR bit per bit dei flag FLASH definiti di seguito in ksmedia.h.
#define KSCAMERA_EXTENDEDPROP_FLASH_OFF 0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_FLASH_ON 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER 0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO 0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER 0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION 0x0000000000000010
Payload
L'elemento flash non ha un payload. Se KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER o KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER viene specificato nei flag, il parametro di alimentazione si trova nell'intervallo compreso tra 0 e 100.
Elemento di compensazione dell'esposizione
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER + le dimensioni di una struttura KSPROPERTY_STEPPING_LONG se sono supportati i passaggi.
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION
Flag
Contiene i flag disponibili. Questo campo deve contenere i flag disponibili eseguendo un OR bit per bit dei flag EVCOMP definiti di seguito in ksmedia.h o il flag AUTO definito di seguito in ksmedia_phone.h.
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP 0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP 0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP 0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP 0x0000000000000010
Payload
Se un driver supporta solo la modalità automatica, un payload non è incluso. In caso contrario, è necessario specificare un payload di intervallo in una struttura KSPROPERTY_STEPPING_LONG . Il minimo e il massimo di compensazione ev sono valori di compensazione ev assoluti e sono determinati da KSPROPERTY_STEPPING_LONG. Bounds.SignedMinimum e KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. Il passaggio di compensazione EV è determinato dalla dimensione del passaggio più basso del flag di passaggio EVCOMP che corrisponde a un float (ad esempio, 1/6 per KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).
Elemento di velocità ISO
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER + le dimensioni di una struttura KSPROPERTY_STEPPING_LONG se è supportata la modalità manuale.
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_ISO
Flag
Questo campo contiene i flag disponibili. Questo campo deve contenere i flag disponibili eseguendo un OR bit per bit dei flag ISO definiti di seguito in ksmedia.h e ksmedia_phone.h. Se l'ISO per frame è supportato, il driver deve supportare almeno una delle funzionalità seguenti, ISO_AUTO e ISO_MANUAL, in cui è obbligatorio ISO_AUTO. Se ISO_MANUAL viene annunciato, il driver deve annunciare ulteriormente la velocità ISO supportata min\max\step in KSPROPERTY_STEPPING_LONG. ISO_MANUAL deve essere supportato se è desiderato l'ISO manuale.
#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL 0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO 0x0000000000000001
Payload
Se un driver supporta solo la modalità automatica, un payload non è incluso. In caso contrario, è necessario specificare un payload di intervallo in una struttura KSPROPERTY_STEPPING_LONG . Il minimo, il massimo e il passaggio di velocità ISO vengono determinati dalla KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum,K SPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum e KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. I driver che supportano l'ISO manuale dell'intero devono annunciare solo ISO_MANUAL con intervalli di velocità ISO supportati (min/max/step). I set di impostazioni di ISO_Xxx numerici non sono supportati per ISO per frame.
Elemento dello stato attivo
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER + le dimensioni di una struttura KSPROPERTY_STEPPING_LONG .
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.
Flag
Contiene i flag disponibili. Questo campo deve essere impostato eseguendo un OR bit per bit del flag definito di seguito in ksmedis.h.
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
È necessario specificare un payload di intervallo in una struttura KSPROPERTY_STEPPING_LONG. Il minimo, il massimo e il passaggio della posizione dell'obiettivo vengono determinati da KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum e KSPROPERTY_STEPPING_LONG. PassaggioDelta. Il comportamento dello stato attivo per fotogramma e il modo in cui si interworks con le impostazioni di messa a fuoco globali è definito come indicato di seguito.
La posizione della lente è appicciosa; ma i comandi dello stato attivo non sono. Se lo stato attivo automatico continuo (CAF) è stato selezionato nelle impostazioni globali, l'operazione di CAF viene sostituita solo per i fotogrammi specificati e il CAF probabilmente sposta la posizione dell'obiettivo (probabilmente dopo una pulizia completa) dopo aver fornito lo stato attivo manuale.
L'impostazione dello stato attivo globale viene sempre assunto a meno che non venga eseguito l'override esplicito con un'impostazione manuale in PFS.
L'af globale è un solo colpo e si applica solo al primo frame, se non è stato specificato alcun override manuale.
Il CAF globale si applica a tutti i frame, a meno che non venga eseguito in modo esplicito l'override da un pfS.
Le impostazioni dello stato attivo manuale globale non si ripristinano dopo un PFS manuale (la posizione dell'obiettivo rimane).
Tipo di immagine di conferma
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Tipo
Questo deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.
Flag
Il campo flag non viene usato.
Payload
Non è disponibile alcun payload per questo elemento.
Elemento della proprietà personalizzata
Size
Questa è la dimensione della struttura KSCAMERA_PERFRAMESETTING_CAP_HEADER + le dimensioni del GUID.
Tipo
Deve essere KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.
Flag
Il campo flags non viene utilizzato.
Payload
Si tratta del GUID della proprietà personalizzata.
Requisiti
Intestazione |
Ksmedia.h |