KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY
L’ID de propriété KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY défini dans KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY est utilisé pour obtenir les fonctionnalités par image du pilote. Il s’agit d’un contrôle GET uniquement ; le pilote doit échouer tous les appels SET.
Récapitulatif de l’utilisation
Pour interroger la fonctionnalité de paramètre par image avec le pilote, le contrôle de propriété KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY est envoyé au pilote avec une mémoire tampon de données. Dans un appel GET, le pilote remplit la charge utile de la fonctionnalité de paramètre par image dans la mémoire tampon de données fournie à l’aide de la disposition de format spécifiée ci-dessous.
En-tête de fonctionnalité (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
En-tête d’élément (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
En-tête d’élément (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Charge utile de l’élément (KSPROPERTY_STEPPING_LONG ou KSPROPERTY_STEPPING_LONGLONG)
La charge utile de la fonctionnalité doit commencer par un en-tête de fonctionnalité. Chaque élément de fonctionnalité doit commencer par un en-tête d’élément. Si un élément de fonctionnalité a une charge utile, l’en-tête d’élément doit être suivi d’une charge utile d’élément correspondante.
Dans un appel GET, une mémoire tampon de longueur zéro est d’abord envoyée au pilote pour déterminer la taille de mémoire tampon de données requise pour contenir l’intégralité de la charge utile de capacité. En réponse à l’appel, le pilote doit retourner STATUS_BUFFER_OVERFLOW avec la taille de mémoire tampon de capacité requise qui doit être au moins la taille de KSCAMERA_PERFRAMESETTING_CAP_HEADER.
Voici les descriptions des champs KSCAMERA_PERFRAMESETTING_CAP_HEADER dans le contexte des types d’éléments définis dans l’énumération KSCAMERA_PERFRAMESETTING_ITEM_TYPE . Le champ de charge utile représente les structures de charge utile d’élément après la structure KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER .
Élément de temps d’exposition
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER + de la taille d’une structure KSPROPERTY_STEPPING_LONGLONG si le mode manuel est pris en charge.
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME.
Indicateurs
Il contient les indicateurs disponibles. Ce champ doit contenir les indicateurs disponibles en effectuant une opération OR en bits des indicateurs définis dans ksmedia.h.
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
Si le pilote prend en charge le mode manuel, une charge utile de plage doit être spécifiée dans KSPROPERTY_STEPPING_LONGLONG. Bounds.SignedMinimum\SignedMaxmum et KSPROPERTY_STEPPING_LONGLONG. SteppingDelta
Élément flash
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FLASH
Indicateurs
Il contient les indicateurs disponibles. Ce champ doit contenir les indicateurs disponibles en effectuant une opération OU des indicateurs FLASH définis ci-dessous dans 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’élément flash n’a pas de charge utile. Si KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER ou KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER est spécifié dans les indicateurs, le paramètre d’alimentation est dans la plage comprise entre 0 et 100.
Élément de compensation d’exposition
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER + de la taille d’une structure KSPROPERTY_STEPPING_LONG si les étapes sont prises en charge.
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION
Indicateurs
Il contient les indicateurs disponibles. Ce champ doit contenir les indicateurs disponibles en effectuant une opération DE bit des indicateurs EVCOMP définis ci-dessous dans ksmedia.h ou l’indicateur AUTO défini ci-dessous dans 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
Si un pilote prend uniquement en charge le mode automatique, aucune charge utile n’est incluse. Sinon, une charge utile de plage doit être spécifiée dans une structure KSPROPERTY_STEPPING_LONG . Les valeurs minimale et maximale de la compensation EV sont des valeurs de compensation ev absolues et sont déterminées à partir de KSPROPERTY_STEPPING_LONG. Bounds.SignedMinimum et KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. L’étape de compensation ev est déterminée par la taille d’étape de l’indicateur d’étape EVCOMP le plus bas qui correspond à un float (par exemple, 1/6 pour KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).
Élément de vitesse ISO
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER + de la taille d’une structure KSPROPERTY_STEPPING_LONG si le mode manuel est pris en charge.
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_ISO
Indicateurs
Ce champ contient les indicateurs disponibles. Ce champ doit contenir les indicateurs disponibles en effectuant un OR en bits des indicateurs ISO définis ci-dessous dans ksmedia.h et ksmedia_phone.h. Si l’ISO par image est pris en charge, le pilote doit prendre en charge au moins l’une des fonctionnalités suivantes, ISO_AUTO et ISO_MANUAL, dans lesquelles ISO_AUTO est obligatoire. Si ISO_MANUAL est annoncé, le pilote doit publier davantage la vitesse ISO prise en charge min\max\step dans KSPROPERTY_STEPPING_LONG. ISO_MANUAL doivent être pris en charge si l’ISO manuelle est souhaitée.
#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL 0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO 0x0000000000000001
Payload
Si un pilote prend uniquement en charge le mode automatique, aucune charge utile n’est incluse. Sinon, une charge utile de plage doit être spécifiée dans une structure KSPROPERTY_STEPPING_LONG . Les vitesses ISO min, max et step sont déterminées à partir de KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum et KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. Les pilotes prenant en charge l’iso manuelle des entiers doivent uniquement publier ISO_MANUAL avec des plages de vitesse ISO prises en charge (min/max/step). Les préréglages de ISO_Xxx numériques ne sont pas pris en charge pour l’ISO par image.
Élément focus
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER + de la taille d’une structure KSPROPERTY_STEPPING_LONG .
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.
Indicateurs
Il contient les indicateurs disponibles. Ce champ doit être défini en effectuant un OR au niveau du bit de l’indicateur défini ci-dessous dans ksmedis.h.
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
Une charge utile de plage doit être spécifiée dans une structure KSPROPERTY_STEPPING_LONG. Le min, max et l’étape de la position de l’objectif sont déterminés à partir de KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum et KSPROPERTY_STEPPING_LONG. SteppingDelta. Le comportement du focus de paramètre par image et la façon dont il interagit avec les paramètres de focus globaux sont définis comme suit.
La position de l’objectif est collante ; mais les commandes de focus ne le sont pas. Si le focus automatique continu (CAF) a été sélectionné dans les paramètres globaux, l’opération CAF est remplacée uniquement pour les images spécifiées et caf déplacera probablement la position de l’objectif (probablement après un balayage complet) après le focus manuel fourni.
Le paramètre de focus global est toujours supposé, sauf s’il est explicitement remplacé par un paramètre manuel dans PFS.
L’AF global est one-shot et s’applique uniquement à la première image, si aucun remplacement manuel n’a été spécifié.
La caf globale s’applique à toutes les trames, sauf si elle est explicitement remplacée par un PFS.
Les paramètres de focus manuel globaux ne sont pas rétablis après un PFS manuel (la position de l’objectif reste).
Type d’image de confirmation
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.
Indicateurs
Le champ indicateurs n’est pas utilisé.
Payload
Il n’existe aucune charge utile pour cet élément.
Élément de propriété personnalisé
Taille
Il s’agit de la taille de la structure KSCAMERA_PERFRAMESETTING_CAP_HEADER + de la taille du GUID.
Type
Cela doit être KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.
Indicateurs
Le champ indicateurs n’est pas utilisé.
Payload
Il s’agit du GUID de la propriété personnalisée.
Configuration requise
En-tête |
Ksmedia.h |