Compatibilidad del controlador con la caché de control UVC de cámara
Los controles UVC se pegan en un dispositivo cuando el servidor de fotogramas se apaga. Si usa una aplicación que establece El balance de blancos con controles UVC y, a continuación, apaga la aplicación, no se restablecerá el balance de blancos de la cámara. Otras aplicaciones que se abren y no cambian el balance de blancos heredarán la configuración anterior.
Una excepción es cuando el equipo entra en S3. Dependiendo de si el dispositivo de cámara entra en D3 o D3 Cold, los controles UVC pueden o no pegarse. Este comportamiento se debe a que D3 Cold quita la energía de la cámara.
El uso del protocolo de control UVC de caché es una manera de tener un comportamiento coherente en las sesiones de la aplicación, S3 y apagados del equipo.
Al establecer la clave de configuración "CacheUVCControl" en el valor DWORD de 1 en la clave del Registro HW del dispositivo mediante descriptores de MS OS 2.0 o el método anterior del archivo INF personalizado, una cámara conservará los valores de control UVC establecidos por el usuario en S3 o reinicios del equipo. A continuación se muestra la lista de valores de control UVC específicos que se almacenarán y se volverán a aplicar.
Controles UVC afectados
A continuación se muestra una lista de controles UVC que se almacenarían en caché y se volverían a aplicar durante el reinicio:
- 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)
Ejemplo de INF
[Device.AddReg.HW]
HKR,,"CacheUVCControl",0x00010001,1
Ejemplo de descriptor de 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
}