Dukungan driver untuk Camera UVC Control Cache

Kontrol UVC menempel pada perangkat saat server frame dimatikan. Jika seseorang menggunakan aplikasi yang mengatur White Balance dengan kontrol UVC lalu mematikan aplikasi, maka White Balance kamera tidak akan diatur ulang. Aplikasi lain yang terbuka dan tidak mengubah Keseimbangan Putih akan mewarisi pengaturan sebelumnya.

Satu pengecualian adalah ketika komputer masuk ke S3. Tergantung pada apakah perangkat kamera masuk ke D3 atau D3 Cold, kontrol UVC mungkin akan tetap berfungsi atau tidak. Perilaku ini karena D3 Cold menghilangkan daya dari kamera.

Memanfaatkan Protokol Kontrol Cache UVC adalah cara untuk mencapai perilaku yang konsisten di seluruh sesi aplikasi, S3, dan pematian komputer.

Dengan mengatur kunci konfigurasi "CacheUVCControl" ke nilai DWORD 1 pada kunci registri HW perangkat melalui deskriptor MS OS 2.0 atau metode file INF kustom yang lebih lama, kamera akan mempertahankan nilai kontrol UVC yang ditetapkan oleh pengguna selama mode S3 ataupun saat komputer di-reboot. Daftar nilai kontrol UVC tertentu yang akan disimpan dan diterapkan kembali ada di bawah ini.

Kontrol pada UVC Terpengaruh

Di bawah ini adalah daftar Kontrol UVC yang akan di-cache dan diterapkan kembali di seluruh boot ulang:

  • 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)

Contoh INF

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

Contoh Deskriptor 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  
}