Partager via


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.

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.

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

  2. Le paramètre de focus global est toujours supposé, sauf s’il est explicitement remplacé par un paramètre manuel dans PFS.

  3. L’AF global est one-shot et s’applique uniquement à la première image, si aucun remplacement manuel n’a été spécifié.

  4. La caf globale s’applique à toutes les trames, sauf si elle est explicitement remplacée par un PFS.

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