Hi,
I am a newbie to DirectShow. Recently I am developing an Image Acquisition
software for a microscope. I want to save the parameters such as brightness,
hue and whitebalance, which are got from the IAMVideoProAmp interface to be
the default parameters for the next startup. However, I found if I set the
ColorEnable property to be manual, the saved values can not make a correct
display, especially the color, while the vidcap32.exe can. The following is
copied from the camera driver info ( *.set file):
;[OVT.9600.Properties]
;Standard properties

ROPSETID_VIDCAP_VIDEOPROCAMP
; KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS, // RW O 0
; KSPROPERTY_VIDEOPROCAMP_CONTRAST, // RW O 1
; KSPROPERTY_VIDEOPROCAMP_HUE, // RW O 2
; KSPROPERTY_VIDEOPROCAMP_SATURATION, // RW O 3
; KSPROPERTY_VIDEOPROCAMP_SHARPNESS, // RW O 4
; KSPROPERTY_VIDEOPROCAMP_GAMMA, // RW O 5
; KSPROPERTY_VIDEOPROCAMP_COLORENABLE, // RW O 6
; KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE, // RW O 7
; KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION,// RW O 8
HKR,%9600Brit%,PropertyId,0x10001, 0
;Control method 0-->just write calculated value to register (one register)
;Control method 1-->Range look up table, write one or more registers for
value within a range
HKR,%9600Brit%,MapMethod,0x10001, 0
HKR,%9600Brit%,RelatedRegister,1,6
;true or false
HKR,%9600Brit%,RelateUsbRegister,1,0
HKR,%9600Brit%,SupportAuto,0x10001,0 ;0 not support, 1 support
;Auto control method 0-->when turn off auto, just write current value to
register
;Auto control method 1-->when turn off auto, just read register value as
current value
HKR,%9600Brit%,PropertyId,0x10001, 0
HKR,%9600Brit%,MapMethod,0x10001, 0
HKR,%9600Brit%,RelatedRegister,1,ec
;true or false
HKR,%9600Brit%,RelateUsbRegister,1,1
HKR,%9600Brit%,DefaultValue,0x10001, 0x00
HKR,%9600Brit%,DefaultFlags,0x10001, 1
HKR,%9600Brit%,MinValue,0x10001, 0xffffff80
HKR,%9600Brit%,MaxValue,0x10001, 0x7f
HKR,%9600Brit%,Step,0x10001, 1
;#####################################
HKR,%9600Cntr%,PropertyId,0x10001, 1
HKR,%9600Cntr%,MapMethod,0x10001, 0
HKR,%9600Cntr%,RelatedRegister,1,eb
;true or false
HKR,%9600Cntr%,RelateUsbRegister,1,1
HKR,%9600Cntr%,DefaultValue,0x10001, 0x80
HKR,%9600Cntr%,DefaultFlags,0x10001, 1
HKR,%9600Cntr%,MinValue,0x10001, 0
HKR,%9600Cntr%,MaxValue,0x10001, 255
HKR,%9600Cntr%,Step,0x10001, 1
;#####################################
HKR,%9600Col%,PropertyId,0x10001, 6
HKR,%9600Col%,MapMethod,0x10001, 1
HKR,%9600Col%,NumberOfValues,0x10001, 2
HKR,%9600Col%\0000,Value,0x10001, 0
HKR,%9600Col%\0000,UsbRegisters,1, f0,00,ff
HKR,%9600Col%\0000,CamRegisters,1, 01,80,ff,02,80,ff,24,80,ff,25,70,ff
HKR,%9600Col%\0001,Value,0x10001, 1
HKR,%9600Col%\0001,UsbRegisters,1, f0,01,ff
HKR,%9600Col%\0001,CamRegisters,1, 24,b0,ff,25,90,ff
HKR,%9600Col%,DefaultValue,0x10001, 1
HKR,%9600Col%,MinValue,0x10001, 0
HKR,%9600Col%,MaxValue,0x10001, 1
HKR,%9600Col%,Step,0x10001, 1
;#####################################
;HKR,%9600Wb%,Registers,0x10001,
;#####################################
;HKR,%9600Wb%,PropertyId,0x10001, 7
;HKR,%9600Wb%,MapMethod,0x10001, 0
;HKR,%9600Wb%,RelatedRegister,1,01
;HKR,%9600Wb%,DefaultValue,0x10001, 80
;HKR,%9600Wb%,DefaultFlags,0x10001, 1
;HKR,%9600Wb%,MinValue,0x10001, 0
;HKR,%9600Wb%,MaxValue,0x10001, 255
;HKR,%9600Wb%,Step,0x10001, 1
I guess the vidcap32.exe buffers the register values. How can I read/write
the registers?
Any comments should be appreciated!