FAQ for toupcam directshow sdk

NOTICE: This Q&A below is only for directshow sdk.

Q: What model series does toupcam directshow sdk support?

A: UCMOS, U3CMOS, UHCCD, EXCCD, SCCCD

Q: What's in toupcam directshow sdk?

A: For normal directshow application development, pure directshow programming is sufficient. For advanced directshow application development (such as camera control GUI customization), interfaces in toupcam_dshow.h are available. A how-to-use C++ source code sample toupcamdemodshow.zip is shipped within toupcamsdk.zip as well. There is also a sample program source code amcap.zip (provided by Microsoft) in the samples directory.

Q: Does directshow sdk support multiple camera instance?

A: No. The directshow sdk only support one camera instance, which mean that toupcam.ax always open the "first" camera connected to the computer. If you want open multiple instance simultaneously, please use the native API.

Q: Where can I find the learning materials about DirectShow?

A: Microsoft's MSDN is the most complete reference of DirectShow. You can access it at http://msdn.microsoft.com/en-us/library/dd375454%28v=VS.85%29.aspx

Q: Which interfaces does toupcam support?

Filter interfaces IBaseFilter
ISpecifyPropertyPages
IAMFilterMiscFlags
IAMVideoControl (Some still capture capable models)
IAMVideoProcAmp
IToupcam (see toupcam_dshow.h)
IToupcamSerialNumber
IToupcamStillImage (Some still capture capable models)
Output pin interfaces
Preview or Still
IPin
IQualityControl
IAMStreamConfig
IKsPropertySet
ISpecifyPropertyPages
IAMVideoProcAmp
IVideoProcAmp
IToupcam (see toupcam_dshow.h)
IToupcamSerialNumber
IToupcamStillImage (Some still capture capable models)
Output Pin Media Types MEDIATYPE_Video (always RGB24)
MEDIASUBTYPE_NULL
FORMAT_VideoInfo

Q: What are the valid ranges of parameters?

A:

Category Functions Range or function to get the range Default
Video Resolution put_Size
get_Size
put_eSize
get_eSize
get_ResolutionNumber
get_Resolution
model specific
Exposure get_AutoExpoTarget
put_AutoExpoTarget
10~230 120
get_AutoExpoEnable
put_AutoExpoEnable
TRUE or FALSE TRUE
get_ExpoTime
put_ExpoTime
get_ExpTimeRange model specific
get_ExpoAGain
put_ExpoAGain
get_ExpoAGainRange model specific
White Balance get_TempTint
put_TempTint
Temp: 2000~15000
Tint: 200~2500
Temp = 6503
Tint = 1000
Color get_Hue
put_Hue
-180~180 0
get_Saturation
put_Saturation
0~255 128
get_Brightness
put_Brightness
-64~64 0
get_Contrast
put_Contrast
-100~100 0
get_Gamma
put_Gamma
20~180 100
get_LevelRange
put_LevelRange
0~255 Low = 0
High = 255
get_MonoMode S_OK: mono mode
S_FALSE: color mode
model specific
Vignetting get_VignetEnable
put_VignetEnable
TRUE or FALSE FALSE
get_VignetMidPointInt
put_VignetMidPointInt
0~100 50
get_VignetAmountInt
put_VignetAmountInt
-100~100 0
Misc get_VFlip
put_VFlip
TRUE or FALSE FALSE
get_HZ
put_HZ
enum: 0, 1, 2
0 -> 60HZ AC
1 -> 50Hz AC
2 -> DC
DC
get_Chrome
put_Chrome
TRUE or FALSE FALSE
get_Speed
put_Speed
get_MaxSpeed model specific
Still Image put_StillSize
get_StillSize
put_eStillSize
get_eStillSize
get_StillResolutionNumber
get_StillResolution
model specific

NOTE: Exposure time unit is microsecond.

Q: How to know whether the camera supports still capture via SDK?

A: Query the IToupcamStillImage interface.

Q: How to get the actual frame rate with the SDK?

A: Code example can be found in TCaptureContext::get_framerate function in capture.h and capture.cpp of the toupcamdemodshow sample project.

Q: How to get the camera's unique id?

A: Use the IToupcamSerialNumber interface. Code example can be found in the toupcamdemodshow sample project.

Q: Can I use the SDK with .net applications?

A: Yes, of course. The SDK is DirectShow based and can be easily integrated into your .net applications. See http://directshownet.sourceforge.net/ for more details.