I got DixX coder and decoder when i installed "DivX Pro".
As below,it works well when i test in Graphedt.exe.
ScreenCapture -----> DivX 5.2.1 Codec -----> DivX Decoder Filter -----> Video Renderer.
I tried in code like below, but does not work , all i get just a blue screen.
const CLSID CLSID_CaptureDesktop = { .....};
const CLSID CLSID_DivxCoder = { .....};
const CLSID CLSID_DivxDecoder = { .....};
const CLSID CLSID_VideoRender = { .....};
.....
.....
hr = CreateObjectFromPath(TEXT("c:\\monitor\\capture.dll"),CLSID_CaptureDesktop, &pUnk);
IBaseFilterPtr CaptureFilter = pUnk;
hr = CreateObjectFromPath(TEXT("c:\\monitor\\coder.dll"),CLSID_DivxCoder, &pUnk);
IBaseFilterPtr DivXCoderFilter = pUnk;
hr = CreateObjectFromPath(TEXT("c:\\monitor\\decoder.dll"),CLSID_DivxDecoder, &pUnk);
IBaseFilterPtr DivXDcoderFilter = pUnk;
IBaseFilter *VideoRenderFilter;
hr=CoCreateInstance(CLSID_VideoRenderer,NULL,CLSCTX_INPROC,IID_IBaseFilter,(void**)&VideoRenderFilter);
ICaptureGraphBuilder2 *GraphBuilder2 = NULL;
IGraphBuilder *GraphBuilder = NULL;
hr = CoCreateInstance(CLSID_CaptureGraphBuilder2,NULL,CLSCTX_INPROC,IID_ICaptureGraphBuilder2,(void**)&GraphBuilder2);
hr = CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC,IID_IGraphBuilder,(void**)&GraphBuilder);
GraphBuilder2->SetFiltergraph(GraphBuilder);
hr = GraphBuilder->AddFilter(CaptureFilter,L"CaptrueDestop");
hr = GraphBuilder->AddFilter(DivXCoderFilter,L"DivXCoder");
hr = GraphBuilder->AddFilter(DivXDcoderFilter,L"DivXDecoder");
hr = GraphBuilder->AddFilter(VideoRenderFilter,L"VideoRender");
.....
.....
hr = GraphBuilder->ConnectDirect(CaptureDestop_OutPin,DivXCoder_InPin,NULL);
hr = GraphBuilder->ConnectDirect(DivXCoder_OutPin,DivXDecoder_InPin,NULL);
hr = GraphBuilder->ConnectDirect(DivXDecoder_OutPin,VideoRender_InPin,NULL);
IMediaControl *pMC = NULL;
hr = GraphBuilder->QueryInterface(IID_IMediaControl, (void **)&pMC);
hr = pMC->Run();
I'm just getting start at directshow, is there something wrong ?