Hello, I am trying to use a camera (Mars640-815um from ContrasTech) via DirectShow. It is not a native UVC camera, but by installing DirectShow plugins (provided by the manufacturer), I can see the live video through GraphEdit. Unfortunately, I cannot do the same with this camera. I can detect it, but I cannot display the live window. I can open the settings window, but it appears disabled. I have always successfully used different cameras. I just wanted to understand if it is a plugin issue, or if a newer version would be able to support it (I would be willing to purchase). Even software from 20 years ago, based on a Delphi wrapper, was able to display it!
Are you talking about the MBS Plugins with DirectShow?
yes, exactly
The example runs through without much error checking.
Can you step through the code and check LastError after each method call to see which one fails?
e.g.
Capture.SetFiltergraph(graph)
If Capture.Lasterror <> 0 Then
MessageBox Capture.LasterrorMessage
end if
and later
Capture.RenderStream(DirectShowPinMBS.PIN_CATEGORY_PREVIEW, Capture.MEDIATYPE_Video, srcfilter)
If Capture.Lasterror <> 0 Then
MessageBox Capture.LasterrorMessage
End If
So you could check Graph.LastError, Capture.LastError and mc.LastError to see which step fails.
ok, I will try
I get an error after “Capture.RenderStream”
(incorrect parameter)
I also encountered an error (no message, just code -2147220969) after Graph.ConnectFilter(pinCamera, VideoRenderer)
edit
I tried to work on the pin… the error becomes “invalid pointer”, but the pin name is correct, I got it with the iterator, and it’s the only pin available
I confirm that I am still stuck on this situation
That is 0x80040217. I found something:
//
// MessageId: VFW_E_CANNOT_CONNECT
//
// MessageText:
//
// No combination of intermediate filters could be found to make the connection.%0
//
#define VFW_E_CANNOT_CONNECT ((HRESULT)0x80040217L)
I am not sure why this fails.
Is it maybe the difference between building the app for 32 vs 64 bit? The driver may only do one architecture?
Or could you check what pins are available?
If you have some Delphi code, that does it, you could send it to me to compare to our C++ code.
Unfortunately, I do not have the source code of the program written in Delphi that it works with. The camera exposes a single pin: I can see it both from the enumeration and from the use of GraphStudio. I tried at 32 bit and … it works! Now I need to ask the manufacturer for the drivers (if they are available!). Otherwise, I will be forced to create an external module (at 32 bit) to the base software, which must necessarily be at 64 bit.
Thanks for now!
I wrote an email to the producer, who tells me that the drivers are available for both 32 and 64 bit. I can see the camera with graphstudio in 64. The drivers are installed in the 64-bit windows folder… is there a way, possibly, to explicitly direct a driver?