Ok, funny situation.

This is with a Renderer Filter that I have written that basically
accepts ANY data and throws it out to a postback COM interface - I need
it in a video conferencing application to pick up the encoded audio and
video streams.

This thing works fine with the drivers and cams we have tried to use it
with during development. It works FLAWLESS, so to say. Once I switch if
over to a logitech camera, I get a totally ridiculous error.

The error I get indicates that error 0x80004003 has occured, and it has
occured within the following lines, which are C# code working on defined
interfaces:
        IPinInfo p2 = QuartzUtils.FindPin (_DataSink, "Video Input");
        pininfo.ConnectDirect (p2);

Once I try to connect (direct or not) the output pin of actually my
video codec to the input pin of the DataSink - I get the 4003 error.

My problem furthermore is that I get a stack trace ONLY up to exactly
this point - the error happens in the second of the lines names above.

Now, the qestions I have are the following:

(a) Anyone can give me a tip what can cause this error? More details on
my code after this.
(b) Anyone can help me with debuggung? I am actually trying to debug a
C# application calling a C++ fillter that is defined in a separate
project of the same solution. I dont get the "internal" error, and this
sadly makes debugging extremely hard. If the debugger would be able to
tell me where in my C++ code the error happens, I would propably have
won.Sadly, the VS.NET debugger seems not to be able to marshall the call
stack.

My C++ CBaseInputFIlter overrides the following:
        HRESULT GetMediaType(int iPosition, CMediaType *pMediaType);
        HRESULT CheckMediaType(const CMediaType* pmt);

        STDMETHODIMP BeginFlush(void);
        STDMETHODIMP EndFlush(void);
        
        STDMETHODIMP Receive(IMediaSample *pSample);

I have tested breakpoints in all 4 of the above methods - the first two
are called, but no error happens in my immediate code. I have also tried
to connect a NullRenderer filter, and THIS connect (with the
NullRenderer) goes through flawlessly.

Code of the DataSink can be published in full if someone wants to have a
look there.

Regards

Thomas Tomiczek
THONA Consulting Ltd.
(Microsoft MVP C#/.NET)

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to