Filter无法连接
我写的源Filter在GraphEdit中能正常连接播放文件,但在程序中去不能连接了,不知为什么,请高手帮忙,谢谢!部分代码如下:
IGraphBuilder *mGraphBuilder;
.....
if(mGraphBuilder)
{
WCHAR szFilePath[MAX_PATH];
MultiByteToWideChar(CP_ACP, 0, inFile, -1, szFilePath, MAX_PATH);
HRESULT hr = mGraphBuilder->AddSourceFilter(szFilePath, L"AsyncEx", &mSrcFilter);
if(FAILED(hr)) return false;
AM_MEDIA_TYPE mt;
IPin *pIn = NULL, *pOut = NULL;
PIN_INFO pinfo;
//连接各个过滤器
hr = GetUnconnectedPin(mSrcFilter, PINDIR_OUTPUT, &pOut); //源Filter输出(只一个输出Pin)
if(FAILED(hr)) return false;
hr = GetUnconnectedPin(mSteamSplliter, PINDIR_INPUT, &pIn); //流分离器输入(只有一个输入Pin)
if(FAILED(hr)) return false;
//以上都成功
ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
mt.majortype = MEDIATYPE_Stream;
mt.subtype = MEDIASUBTYPE_MPEG2_PROGRAM;
mt.formattype = GUID_NULL;
hr = pOut->QueryAccept(&mt);
hr = pIn->QueryAccept(&mt); //调试发现支持批指定的媒体类型,返回hr=0;
hr = mGraphBuilder->ConnectDirect(pOut, pIn, &mt); //到此返回-2147220985;
// hr = mGraphBuilder->Connect(pOut, pIn); //如果用此调用会弹出导异常窗口
pIn->Release();
pOut->Release();
if(FAILED(hr)) return false;
......
}
评论读取中....