Suporte de driver para cache de controle UVC da câmera
Os controles UVC ficam em um dispositivo quando o servidor de quadros é desligado. Se alguém usar um aplicativo que define o White Balance com controles UVC e, em seguida, desligar o aplicativo, o White Balance da câmera não será redefinido. Outros aplicativos que abrem e não alteram o White Balance herdarão a configuração anterior.
Uma exceção é quando o computador entra no S3. Dependendo se o dispositivo de câmera entra em D3 ou D3 Cold, os controles UVC, respectivamente, podem ou não ficar. Esse comportamento ocorre porque o D3 Cold remove a energia da câmera.
Utilizar o Protocolo de Controle UVC de Cache é uma maneira de ter um comportamento consistente entre sessões de aplicativo, S3 e desligamentos de computador.
Ao definir a chave de configuração "CacheUVCControl" como o valor DWORD de 1 na chave do Registro HW do dispositivo por meio de descritores do MS OS 2.0 ou o método mais antigo do arquivo INF personalizado, uma câmera manterá os valores de controle UVC definidos pelo usuário em todo o S3 ou reinicializações do computador. A lista de valores de controle UVC específicos que serão armazenados e reaplicados está abaixo.
Controles UVC afetados
Veja abaixo uma lista de Controles UVC que seriam armazenados em cache e reaplicados na reinicialização:
- 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)
Exemplo de INF
[Device.AddReg.HW]
HKR,,"CacheUVCControl",0x00010001,1
Exemplo de descritor do 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
}