I have a C# DirectShow.Net application and i want to test it running on other computers in release mode. How can i go about making sure my program will run on other machines that don't incorporate the windows sdk and the filters it avails?
I will have to include the dirctshow dlls and such but what can i do about the filters themselves?
Update: I have virtual machines to run it on, but moreover how can i make sure a certain directx filter is on a computer and if it isnt, grab the dll and register it to the computer from code?
Edit: After i have the DLLs registered i run my program. It doesnt run, so i grab graphstudio and i attach my program's graphs to graphstudio and none of the filters are connected and when i try to manually connect them they refuse to connect.
Edit2:
Can you post more details about the scenario you are having problems with?
I am running my application which works on my windows 7 32bit machine on my Virtualbox VM. the virtualbox wont allow me access to my usb device for streaming purposes so i commented out the code that depends on it. when i run it, the filters wont connect. I did some testing and tried to recreate the graphs without the source and they wont connect together so that may actually be the problem.
OS version?
At the moment i am running the 32bit XP virtualbox VM
which filters you are using?
I am using
Source -> Smart tee (capture) -> GMFBridgeSinkFilter
Smart tee (preview) -> AVI Decompressor -> Video REnderer
GMFBridgeSource -> ffdshow video encoder -> avi mux -> File writer
(w)riter has to be lowercase for some odd reason. dev machine has (w)riter and (W)riter
Which filters do you have there that you are not using?
Do you mean which are standard on the OS or filters i put in the code and am not connecting to?
You could also try with the original GraphEdit instead of GraphStudio, and you could debug your application remotely and see where it is failing exactly.
Graphedit only comes in the full windows sdk which is a pain to download where im at.