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.
Funktionsheader (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
Elementheader (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Elementheader (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Elementnutzlast (KSPROPERTY_STEPPING_LONG oder KSPROPERTY_STEPPING_LONGLONG)
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.
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.
Die Einstellung für den globalen Fokus wird immer angenommen, es sei denn, es wird explizit mit einer manuellen Einstellung in PFS überschrieben.
Der globale AF ist ein Schuss und gilt nur für den ersten Frame, wenn keine manuelle Außerkraftsetzung angegeben wurde.
Die globale CAF gilt für alle Frames, es sei denn, sie wird explizit von einem PFS überschrieben.
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 |