加入wm asf writer,所有pin都连接正常,但是run失败
代码如下:
InitCaptureGraphBuilder();
ListVideoCaptureDevices();
ListAudioCaptureDevices();
pGraph->AddFilter(pVidCap, L"Video Capture");
pGraph->AddFilter(pAudCap, L"Audio Capture");
HRESULT hr;
hr = CoCreateInstance(CLSID_WMAsfWriter,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBaseFilter,
(void**)&pASFWriter);
if (hr)
{
return E_FAIL;
}
hr = pGraph->AddFilter(pASFWriter, L"WM ASF Writer");
IConfigAsfWriter *pConfig = 0;
hr = pASFWriter->QueryInterface(IID_IConfigAsfWriter, (void**)&pConfig);
if (SUCCEEDED(hr))
{
// Configure the ASF Writer filter.
hr = pConfig->SetIndexMode(TRUE);
pConfig->Release();
}
hr = pBuild->SetOutputFileName(
&MEDIASUBTYPE_Asf, // Create a Windows Media file.
L"C:\\VidCap.wmv", // File name.
&pASFWriter, // Receives a pointer to the filter.
NULL); // Receives an IFileSinkFilter interface pointer (optional).
hr = pBuild->RenderStream(
&PIN_CATEGORY_CAPTURE, // Capture pin.
&MEDIATYPE_Video, // Video. Use MEDIATYPE_Audio for audio.
pVidCap, // Pointer to the capture filter.
0,
pASFWriter); // Pointer to the sink filter (ASF Writer).
hr = pBuild->RenderStream(
&PIN_CATEGORY_CAPTURE, // Capture pin.
&MEDIATYPE_Audio, // Video. Use MEDIATYPE_Audio for audio.
pAudCap, // Pointer to the capture filter.
0,
pASFWriter); // Pointer to the sink filter (ASF Writer).