⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_17572.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:17572 发表者:程建勇 发表日期:2002-10-13 08:00:34
<br>主题:如何在采集的时候处理采集的数据
<br>内容:我在使用directshow采集的时候想对采集的buffer进行处理<BR>希望能够在preview的时候能够看到处理的效果<BR>请问如何能够得到buffer的数据,得到buffer指针后如何处理呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:鸡蛋壳 回复日期:2002-10-13 11:12:07
<br>内容:这个问题有很多很多人问过.<BR><BR>答案就是用ISampleGrabber接口.<BR>你必须有2个对象:<BR>ISampleGrabber *pSample;<BR>IBaseFilter *pSGFilter;<BR><BR>hr = CoCreateInstance( CLSID_SampleGrabber, ..., IID_ISampleGrabber,..., &pSample);<BR><BR>hr = pSample-&gt;QueryInterface( IID_IBaseFilter, &pSGFilter );<BR><BR>然后在ICaptureGraphBuilder2-&gt;RenderStream( &PIN_CATEGORY_PREVIEW, &MEDIATYPE_Video, pSrc, pSGFilter, NULL );<BR><BR>其中pSrc是你的采集卡的IBaseFilter, 相信你已经通过ISysEnum得到了. 在用SampleGrabber之前, 你的renderstream中, pSGFilter的位置是NULL吧?<BR><BR>现在有了SampleGrabber还不行.还要设置SampleGrabber的数据采集类型:<BR>pSample-&gt;SetMediaType(...);<BR>pSample-&gt;BufferSamples(FALSE);<BR>pSample-&gt;SetOneShot( FALSE );<BR>pSample-&gt;SetCallback( this, 1 );<BR><BR>然后你必须自己写一个类, 从ISampleGrabberCB接口派生, 然后声明一个这个类的对象, 用它做SampleGrabber的回调函数,具体的例子参考DShow例子DXSDK\samples\directshow\editing\SampGrabCB<BR><BR>好了, 你可以试试.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -