Supporto driver per la cache di controllo UVC della fotocamera
I controlli UVC si bloccano su un dispositivo quando il server frame viene arrestato. Se si usa un'app che imposta Il bilanciamento del bianco con i controlli UVC e quindi arresta l'app, il bilanciamento del bianco della fotocamera non verrà reimpostato. Altre app aperte e non cambiano il bilanciamento del bianco erediteranno l'impostazione precedente.
Un'eccezione è quando il computer passa a S3. A seconda che il dispositivo della fotocamera vada in D3 o D3 Cold, i controlli UVC possono o non essere presenti. Questo comportamento è dovuto al fatto che il freddo D3 rimuove l'alimentazione dalla fotocamera.
L'uso del protocollo di controllo UVC cache è un modo per avere un comportamento coerente tra sessioni dell'applicazione, S3 e arresti del computer.
Impostando la chiave di configurazione "CacheUVCControl" sul valore DWORD pari a 1 nella chiave del Registro di sistema HW del dispositivo tramite i descrittori MS OS 2.0 o il metodo precedente del file INF personalizzato, una fotocamera manterrà i valori di controllo UVC impostati dall'utente tra i riavvii del computer o S3. L'elenco di valori di controllo UVC specifici archiviati e riapplicati è riportato di seguito.
Controlli UVC interessati
Di seguito è riportato un elenco di controlli UVC che verranno memorizzati nella cache e riapplicati nel riavvio:
- 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)
Esempio INF
[Device.AddReg.HW]
HKR,,"CacheUVCControl",0x00010001,1
Esempio di descrittore di 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
}