I am working with the library for grabbing video from frame grabbers and cameras for more than a year now and it works well. About a week ago I got a new camera which we consider to integrate and I cannot make it work through the DirectShow.NET - it keeps failing on:
hr = m_FilterGraph.AddSourceFilterForMoniker(dev.Mon, null, dev.Name, out capFilter);
I get an exception hr = 0x800703e6, Invalid access to memory location
It happens only with this camera.
The camera works OK when activated through VLC or AmCap.
I see two things you should check :
1) What kind of driver is installed for the camera (User Mode, Kernel Mode) ? Does it support 32 and 64 bits ?
2) What are the values of dev.Mon and dev.Name ? Are they valid ?
1) The camera works OK through VLC, AmCap and their proprietary software, so I suppose the driver is OK.
2) dev.Name looks valid. dev.Mon has a lot of empty fields and pointers, but this is also a case with other cameras.
I really don't know.
"VLC, AmCap and their proprietary software" are 32 bits software. If you are using a 64 bits OS, try to run your application using x86 instead of AnyCPU.
Also since 0x800703e6 is ERROR_NOACCESS, try to run your apps as Administrator to see what happen.
Thanks for your input, it proved to be helpful. Indeed, the problem seems to be in 64-bit. If running the application as 32-bit, it works OK. Probably the driver has issues with 64-bit.
Log in to post a comment.