I have noticed that any changes to the settings on my USB webcam are reset every time I unplug it. I understand that these settings are controlled via IVideoProcAmp, although in all honesty I don't know what that is. Specifically, i want to set the white balance default to OFF, in order to make a project I'm working on foolproof for a client.
Can anyone explain where the values for IVideoProcAmp are stored? Are they part of the registry? Taking into account that I'm far out of my depth and do not really understand what IVideoProcAmp is?
Presumably you are displaying the device's property pages and allowing people to change settings?
You can usually programmatically retrieve a device's settings as a binary blob using IPersistStream. The sequence of events would go something like this:
1) You build the graph, restoring any saved settings from #3 using IPersistStream
2) You allow people to set whatever they want.
3) Each time they change their settings, use IPersistStream to get the blob from the device and store it in a file.
There are some samples that show how to use IPersistStream (Misc\Toolkit\FilterGraphTools.cs). However, they save the settings for everything in the graph. Typically you'll just want to save them for the 1 filter.
Note that saved blobs cannot be used by different devices. Even the same device but with different versions of the driver may not be the same.
To answer your question, no the end users will not have access to the controls. The cameras are acting as detectors on an interactive exhibit; detecting the colours of balls placed in front of them to activate videos. This is why we need colour correction turned off, so that they consistently recognize the colours correctly.
I was hoping for a background fix because I have no involvement (or knowledge) in the actual programming. This is why I thought changing the defaults would be the best solution, since that would be foolproof.
Log in to post a comment.