DirectShow pin连接失败

feiyin_th003 2016-03-06 04:58:38
HRESULT hr = InitializeGraph();
if (FAILED(hr))
{
goto done;
}

hr = CoCreateInstance(CLSID_AsyncNet, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void **)&pSource);//CLSID_AsyncNet 从async修改而来
if(FAILED(hr))
{
goto done;
}

hr = pSource->QueryInterface(IID_IFileSourceFilter, (void**)&pFileSource);
if (FAILED(hr))
{
goto done;
}
hr = pFileSource->Load(pszURL, NULL);
if (FAILED(hr))
{
goto done;
}

/* Add our filter */
hr = m_pGraph->AddFilter(pSource, L"AsyncNet.");
if(FAILED(hr))
{
goto done;
}

hr = CoCreateInstance(CLSID_AviSplitter, NULL, CLSCTX_INPROC_SERVER,
IID_IBaseFilter, (void **)&pSpliter);
if (FAILED(hr))
{
goto done;
}

hr = m_pGraph->AddFilter(pSpliter, L"Spliter");
if (FAILED(hr))
{
goto done;
}

IPin *pOut = GetPin(pSource, FALSE);
IPin *pIn = GetPin(pSpliter, TRUE);
hr = m_pGraph->Connect(pOut, pIn);//这里连接失败 错误代码-2147220969
...全文
244 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongEagle 2019-09-24
  • 打赏
  • 举报
回复
楼主,你的问题怎么解决的啊。遇到和你同样的问题,在GraphEdit中自定义的一个TransformFilter可以和下一级的Filter(AVI Decompressor\SampleGrabber)连接,但是在Code中也同样在hr = m_pGraph->Connect(pOut, pIn);//这里连接失败 错误代码-2147220969(0x80040217) 这一步连接失败.
试了很多方法都没有解决。不过Build出来的exe可以运行,Source Code在Debug模式下就连接不上,还请帮忙解答。
https://bbs.csdn.net/topics/394549875
feiyin_th003 2016-03-06
  • 打赏
  • 举报
回复
mpg文件和avi文件在Graphedt中都可以render成功

feiyin_th003 2016-03-06
  • 打赏
  • 举报
回复
pszURL = “urls://127.0.0.1:9000/xxx.avi” 把CLSID_AviSplitter修改为CLSID_MMSPLITTER,pszURL = “urls://127.0.0.1:9000/xxx.mpg”时连接成功 修改为CLSID_MPEG2Demultiplexer,pszURL = “urls://127.0.0.1:9000/xxx.mpg”则连接失败

2,554

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧