I'm trying to use The March Hare's VCam example ( http://tmhare.mvps.org/downloads.htm
) to build my own video source that streams compressed format
( Googles WebM8 codec ). I've changed the pin formats and supplied the
GUID's from Google's Webm DirectShow filter's source and the graph
( my source + webm decoder + renderer ) connects fine - but the weird
thing as opposed to the original sample is that when i start playing
the fist FillBuffer() is called from
CFilterGraph::BuildPushSourceList() and this pointer in that call is
totally wrong and thus the method crashed. The origina VCam example
shows that FillBuffer is always called in the
CSourceStream::ThreadProc(). I'm quite new to direct show and don't
have any good clues to start from - if anyone could help me even with
an idea that would be good. If i can provide any more information,
please ask. I've bascially copied all the code from VCam, just changed
the pin config, GetMediaType, GetStreamCaps and the way the buffer is
filled, but then I guess some of these changes make the graph behave
differently.
Regards,
Rudolfs Bundulis
additional thing - just found that all this could happen because the
m_cRef is 0 in the time of FillBuffer for my filter and it may have
been already released / deleted, while for VCam m_cRef is two, so it
looks like that im loosing some references somewhere - but i haven't
changed / added / removed any code that does that. Any suggestions
what other actions could trigger that ?