KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

Die KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY Eigenschaften-ID, die in KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY definiert ist, wird verwendet, um die Funktionen pro Frame vom Treiber abzurufen. Dies ist ein reines GET-Steuerelement. Der Treiber muss bei SET-Aufrufen fehlschlagen.

Nutzungszusammenfassung

Um die Einstellungsfunktion pro Frame mit dem Treiber abzufragen, wird das KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY-Eigenschaftssteuerelement zusammen mit einem Datenpuffer an den Treiber gesendet. In einem GET-Aufruf füllt der Treiber die Nutzlast der Einstellungsfunktion pro Frame in den Datenpuffer ein, der mit dem unten angegebenen Formatlayout bereitgestellt wird.

Die Funktionsnutzlast muss mit einem Funktionsheader beginnen. Jedes Funktionselement muss mit einem Elementheader beginnen. Wenn ein Funktionselement über eine Nutzlast verfügt, muss auf den Elementheader eine entsprechende Elementnutzlast folgen.

Bei einem GET-Aufruf wird zuerst ein Puffer der Länge Null an den Treiber gesendet, um die erforderliche Datenpuffergröße für die gesamte Funktionsnutzlast zu ermitteln. Als Reaktion auf den Aufruf muss der Treiber STATUS_BUFFER_OVERFLOW mit der erforderlichen Größe des Funktionspuffers zurückgeben, die mindestens die Größe KSCAMERA_PERFRAMESETTING_CAP_HEADER.

Im Folgenden sind die Beschreibungen der KSCAMERA_PERFRAMESETTING_CAP_HEADER Felder im Kontext der in der KSCAMERA_PERFRAMESETTING_ITEM_TYPE-Enumeration definierten Elementtypen aufgeführt. Das Nutzlastfeld stellt die Elementnutzlaststrukturen nach der KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER-Struktur dar.

Element zur Belichtungszeit

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur und die Größe einer KSPROPERTY_STEPPING_LONGLONG-Struktur , wenn der manuelle Modus unterstützt wird.

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME sein.

Flags

Diese enthält die verfügbaren Flags. Dieses Feld muss die verfügbaren Flags enthalten, indem ein bitweises OR der in ksmedia.h definierten Flags erfolgt.

#define KSCAMERA_PERFRAMESETTING_AUTO       0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Nutzlast

Wenn der Treiber den manuellen Modus unterstützt, muss eine Bereichsnutzlast in KSPROPERTY_STEPPING_LONGLONG angegeben werden. Bounds.SignedMinimum\SignedMaxmum und KSPROPERTY_STEPPING_LONGLONG. SteppingDelta

Flash-Element

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur .

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_FLASH

Flags

Diese enthält die verfügbaren Flags. Dieses Feld muss die verfügbaren Flags enthalten, indem ein bitweises OR der unten in ksmedia.h definierten FLASH-Flags verwendet wird.

#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

Nutzlast

Das Flashelement verfügt nicht über eine Nutzlast. Wenn KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER oder KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER in den Flags angegeben ist, liegt der Power-Parameter im Bereich von 0 bis 100.

Belichtungskompensationselement

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur und die Größe einer KSPROPERTY_STEPPING_LONG-Struktur , wenn Schritte unterstützt werden.

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION

Flags

Diese enthält die verfügbaren Flags. Dieses Feld muss die verfügbaren Flags enthalten, indem ein bitweises OR der unten in ksmedia.h definierten EVCOMP-Flags oder das unten in ksmedia_phone.h definierte AUTO-Flag verwendet wird.

#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

Nutzlast

Wenn ein Treiber nur den automatischen Modus unterstützt, ist keine Nutzlast enthalten. Andernfalls muss eine Bereichsnutzlast in einer KSPROPERTY_STEPPING_LONG-Struktur angegeben werden. Min. und max. Ev-Kompensation sind absolute EV-Kompensationswerte und werden aus KSPROPERTY_STEPPING_LONG bestimmt. Bounds.SignedMinimum und KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. Der Schritt der EV-Kompensation wird durch die Schrittgröße der niedrigsten EVCOMP-Schrittflagge bestimmt, die einem Float entspricht (z. B. 1/6 für KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).

ISO-Geschwindigkeitselement

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur und die Größe einer KSPROPERTY_STEPPING_LONG-Struktur , wenn der manuelle Modus unterstützt wird.

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_ISO

Flags

Dieses Feld enthält die verfügbaren Flags. Dieses Feld muss die verfügbaren Flags enthalten, indem ein bitweises OR der unten in ksmedia.h und ksmedia_phone.h definierten ISO-Flags verwendet wird. Wenn ISO pro Frame unterstützt wird, muss der Treiber mindestens eine der folgenden Funktionen unterstützen, ISO_AUTO und ISO_MANUAL, in denen ISO_AUTO obligatorisch ist. Wenn ISO_MANUAL angekündigt wird, muss der Treiber die unterstützte ISO-Geschwindigkeit min\max\step in KSPROPERTY_STEPPING_LONG weiter ankündigen . ISO_MANUAL müssen unterstützt werden, wenn eine manuelle ISO gewünscht wird.

#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL    0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO      0x0000000000000001

Nutzlast

Wenn ein Treiber nur den automatischen Modus unterstützt, ist keine Nutzlast enthalten. Andernfalls muss eine Bereichsnutzlast in einer KSPROPERTY_STEPPING_LONG-Struktur angegeben werden. Die Mindest-, Max- und Schrittgeschwindigkeit der ISO-Geschwindigkeiten werden von KSPROPERTY_STEPPING_LONG bestimmt. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum und KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. Treiber, die eine ganzzahlige manuelle ISO unterstützen, sollten nur ISO_MANUAL mit unterstützten ISO-Geschwindigkeitsbereichen (min/max/step) ankündigen. Numerische ISO_Xxx werden für ISO pro Frame nicht unterstützt.

Fokuselement

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur und die Größe einer KSPROPERTY_STEPPING_LONG-Struktur .

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.

Flags

Diese enthält die verfügbaren Flags. Dieses Feld muss durch bitweises OR des unten in ksmedis.h definierten Flags festgelegt werden.

#define KSCAMERA_PERFRAMESETTING_MANUAL     0x0000000200000000

Nutzlast

Eine Bereichsnutzlast muss in einer KSPROPERTY_STEPPING_LONG-Struktur angegeben werden. Die Mindest-, Max- und Schrittposition der Linse wird von KSPROPERTY_STEPPING_LONG bestimmt. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum und KSPROPERTY_STEPPING_LONG. SteppingDelta. Das Verhalten des Einstellungsfokus pro Frame und wie er mit globalen Fokuseinstellungen zusammenarbeitt, wird wie folgt definiert.

  1. Die Objektivposition ist klebrig; Fokusbefehle sind dies jedoch nicht. Wenn in den globalen Einstellungen der kontinuierliche Autofokus (CAF) ausgewählt wurde, wird der CAF-Vorgang nur für die angegebenen Frames überschrieben, und CAF verschiebt wahrscheinlich die Objektivposition (wahrscheinlich nach einem vollständigen Sweep) nach dem bereitgestellten manuellen Fokus.

  2. Die Einstellung für den globalen Fokus wird immer angenommen, es sei denn, es wird explizit mit einer manuellen Einstellung in PFS überschrieben.

  3. Der globale AF ist ein Schuss und gilt nur für den ersten Frame, wenn keine manuelle Außerkraftsetzung angegeben wurde.

  4. Die globale CAF gilt für alle Frames, es sei denn, sie wird explizit von einem PFS überschrieben.

  5. Die globalen manuellen Fokuseinstellungen rückgängig machen nach einem manuellen PFS nicht (die Objektivposition bleibt bestehen).

Bestätigungsbildtyp

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur .

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.

Flags

Das Feld flags wird nicht verwendet.

Nutzlast

Es gibt keine Nutzlast für dieses Element.

Benutzerdefiniertes Eigenschaftenelement

Größe

Dies ist die Größe der KSCAMERA_PERFRAMESETTING_CAP_HEADER-Struktur + die Größe der GUID.

Typ

Dies muss KSCAMERA_PERFRAMESETTING_ITEM_TYPE sein. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.

Flags

Das Feld flags wird nicht verwendet.

Nutzlast

Dies ist die GUID der benutzerdefinierten Eigenschaft.

Anforderungen

Header

Ksmedia.h