设为首页 加入收藏

TOP

9.1.2 使用Capture Graph Builder
2013-10-07 00:41:24 来源: 作者: 【 】 浏览:54
Tags:9.1.2 使用 Capture Graph Builder

9.1.2  使用Capture Graph Builder

使用DirectShow的滤波器进行流媒体开发,需要一个管理器即滤波器链表管理器(Filter Graph Manager),DirectShow SDK提供的是Graph Builder接口IgraphBuilder。不过针对捕获任务(Capture),还有另一个接口ICaptureGraphBuilder2针对采集捕获的增强型接口。

/*创建滤波器链表管理器,查询其各种控制接口*/
HRESULT CCaptureClass::InitCaptureGraphBuilder()

HRESULT hr;
//创建IGraphBuilder接口
hr = CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&m_pGB);
if (FAILED(hr)) return hr;
//创建ICaptureGraphBuilder2接口
hr = CoCreateInstance(CLSID_CaptureGraphBuilder2 , NULL,
CLSCTX_INPROC,
IID_ICaptureGraphBuilder2, (void **)&m_pCapture);
if (FAILED(hr)) return hr;
//初始化滤波器链表管理器IGraphBuilder
m_pCapture->SetFiltergraph(m_pGB);
//查询媒体控制接口
hr = m_pGB->QueryInterface(IID_IMediaControl, (void **)&m_pMC);
if (FAILED(hr)) return hr;
//查询视频窗口接口
hr = m_pGB->QueryInterface(IID_IVideoWindow, (LPVOID *) &m_pVW);
if (FAILED(hr)) return hr;
return hr;
}
在上述程序中,首先创建IGraphBuilder接口,然后创建ICaptureGraphBuilder2接口,接着使用ICaptureGraphBuilder2初始化IGraphBuilder接口。在IGraphBuilder接口下查询媒体控制接口、视频窗口接口。
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇9.2.2 视频捕获类CCaptureClass的.. 下一篇9.2.1 GraphEdit模拟实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: