|
?????????DirectShow??????????????????VMR9???????.rmvb,.avi,.mp4???????????????????????????????????????????????MSDN??????????????????????????????????
IGraphBuilder* pGraph = NULL;
IMediaControl* pControl = NULL;
IBaseFilter* pVMR9 = NULL;
IVMRFilterConfig9* pVMR9Config = NULL;
ICaptureGraphBuilder2* pCapture = NULL;
IVMRWindowlessControl9* pVMR9Control = NULL;
CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,
IID_IGraphBuilder,(void**)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
CoCreateInstance(CLSID_VideoMixingRenderer9, NULL, CLSCTX_INPROC, IID_IBaseFilter, (VOID**)&pVMR9);
pGraph->AddFilter(pVMR9, L"Video Mixing Renderer 9");
pVMR9->QueryInterface(IID_IVMRFilterConfig9,(void**)&pVMR9Config);
pVMR9Config->SetRenderingMode(VMR9Mode_Windowless);
pVMR9->QueryInterface(IID_IVMRWindowlessControl9, (VOID**)&pVMR9Control);
pVMR9Control->SetVideoClippingWindow(hwnd);
RECT *clientRect = new RECT;
GetClientRect(hwnd, clientRect );
pVMR9Control->SetVideoPosition(NULL,clientRect);
pGraph->RenderFile(L"aaa.mp4",NULL);
pControl->Run();
|
|