64,654
社区成员
发帖
与我相关
我的任务
分享
IPin *pOutPin = NULL;
hr = FindPin(m_pSrcFilter, PINDIR_OUTPUT, &pOutPin);
m_pGraph->Render(pOutPin);
//m_pSrcFilter是枚举出来的视频设备
只接了视频源到m_pGraph
现在改为
HRESULT hr = CoCreateInstance(CLSID_VideoMixingRenderer9, NULL,
CLSCTX_INPROC, IID_IBaseFilter, (void **)&m_pVMRender);
if (FAILED(hr)) return hr;
hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&m_pGrabberFilter));
if (FAILED(hr)) return hr;
hr = m_pGraph->AddFilter(m_pGrabberFilter, L"Sample Grabber");
if (FAILED(hr)) return hr;
hr = m_pGrabberFilter->QueryInterface(IID_PPV_ARGS(&m_pSGrabber));
if (FAILED(hr)) return hr;
hr = ConnectFilters(m_pGraph, m_pSrcFilter, m_pGrabberFilter);
hr = ConnectFilters(m_pGraph, m_pGrabberFilter, m_pVMRender);
//先把m_pSrcFilter接到m_pGrabberFilter,再从m_pGrabberFilter接到m_pVMRender就行了