Condividi tramite


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.

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.

  1. 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.

  2. L'impostazione dello stato attivo globale viene sempre assunto a meno che non venga eseguito l'override esplicito con un'impostazione manuale in PFS.

  3. L'af globale è un solo colpo e si applica solo al primo frame, se non è stato specificato alcun override manuale.

  4. Il CAF globale si applica a tutti i frame, a meno che non venga eseguito in modo esplicito l'override da un pfS.

  5. 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