16,471
社区成员
发帖
与我相关
我的任务
分享
class
{
public:
bool InitVideo(HWND hwnd)
{
CoInitialize(0);
HRESULT hr = 0;
hr = CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_IGraph);
if (FAILED(hr)) return false;
hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL,
CLSCTX_INPROC, IID_ICaptureGraphBuilder2, (void**)&m_ICapture);
if (FAILED(hr)) return false;
hr = m_ICapture->SetFiltergraph(m_IGraph);
if (FAILED(hr)) return false;
hr = CoCreateInstance(CLSID_VideoMixingRenderer, NULL,
CLSCTX_INPROC, IID_IBaseFilter, (void**)&m_IVMR);
hr = m_IGraph->AddFilter(m_IVMR, L"Video Mixing Renderer");
if (FAILED(hr)) return false;
}
void ResizeVideo
{
HRESULT hr = 0;
VIDEO_STREAM_CONFIG_CAPS scc;
AM_MEDIA_TYPE* pmt = 0;
IAMStreamConfig* m_pVSC = 0;
//Problem here
hr = m_ICapture->FindInterface(&PIN_CATEGORY_CAPTURE,
&MEDIATYPE_Interleaved, m_IVMR, IID_IAMStreamConfig, (void**)&m_pVSC);
}
private:
IGraphBuilder* m_IGraph;
ICaptureGraphBuilder2* m_ICapture;
IBaseFilter* m_IVMR;
};