Prise en charge du pilote pour le cache de contrôle UVC de la caméra

Les contrôles UVC s’arrêtent sur un appareil lorsque le serveur d’images s’arrête. Si l’on utilise une application qui définit la balance des blancs avec des contrôles UVC, puis arrête l’application, la balance des blancs de l’appareil photo ne sera pas réinitialisée. Les autres applications qui s’ouvrent et ne modifient pas la balance des blancs héritent du paramètre précédent.

Une exception est lorsque l’ordinateur passe dans S3. Selon que l’appareil photo passe en D3 ou D3 Froid, les contrôles UVC peuvent ou non coller. Ce comportement est dû au fait que D3 Cold supprime l’alimentation de l’appareil photo.

L’utilisation du protocole de contrôle UVC du cache est un moyen d’avoir un comportement cohérent entre les sessions d’application, S3 et les arrêts d’ordinateur.

En définissant la clé de configuration « CacheUVCControl » sur la valeur DWORD 1 dans la clé de Registre HW de l’appareil au moyen des descripteurs MS OS 2.0 ou de l’ancienne méthode de fichier INF personnalisé, une caméra conserve les valeurs de contrôle UVC définies par l’utilisateur lors des redémarrages de l’ordinateur ou de S3. La liste des valeurs de contrôle UVC spécifiques qui seront stockées et réappliquées est ci-dessous.

Contrôles UVC affectés

Vous trouverez ci-dessous la liste des contrôles UVC qui seraient mis en cache et réapplicés lors du redémarrage :

  • KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS
  • KSPROPERTY_VIDEOPROCAMP_CONTRAST
  • KSPROPERTY_VIDEOPROCAMP_GAIN
  • KSPROPERTY_VIDEOPROCAMP_GAMMA
  • KSPROPERTY_VIDEOPROCAMP_HUE(+ AUTO)
  • KSPROPERTY_VIDEOPROCAMP_SATURATION
  • KSPROPERTY_VIDEOPROCAMP_SHARPNESS
  • KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE(+ AUTO)

Exemple INF

[Device.AddReg.HW]
HKR,,"CacheUVCControl",0x00010001,1

Exemple de descripteur MS OS 2.0

UCHAR Example_MSOS20DescriptorSet_CacheUVCControl[0x38] =
{
    //
    // Microsoft OS 2.0 Descriptor Set Header
    //
    0x0A, 0x00,               // wLength - 10 bytes
    0x00, 0x00,               // MSOS20_SET_HEADER_DESCRIPTOR
    0x00, 0x00, 0x0?, 0x06,   // dwWindowsVersion – 0x060?0000 for future Windows version
    0x3C, 0x00,               // wTotalLength – 60 bytes

    //
    // Microsoft OS 2.0 Registry Value Feature Descriptor
    //
    0x32, 0x00,               // wLength 0x32 (50) in bytes of this descriptor  
    0x04, 0x00,               // wDescriptorType – MSOS20_FEATURE_REG_PROPERTY  
    0x04, 0x00,               // wPropertyDataType - REG_DWORD  
    0x24, 0x00,               // wPropertyNameLength – 0x24 (36) bytes
    'C',  0x00, 'a',  0x00,   // Property Name - “CacheUVCControl”  
    'c',  0x00, 'h',  0x00,  
    'e',  0x00, 'U',  0x00,
    'V',  0x00, 'C',  0x00,  
    'C',  0x00, 'o',  0x00,  
    'n',  0x00, 't',  0x00,  
    'r',  0x00, 'o',  0x00,  
    'l',  0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00,
    0x04, 0x00,               // wPropertyDataLength – 4 bytes  
    0x01, 0x00, 0x00, 0x00,   // Enable to cache UVC controls  
}