# 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.