200分放送,用DirectShow做的程序中怎么使用Filter

CoolHg 2002-04-01 05:37:10
编译了Samples 中的 Filter,可是怎么使用它们呢,不会是要用 FindFilterByName 或 FindPinByName 等等来找到我要加入的下一个,断开,再加入吧,如果真是这样,那怎么找到正确的 Filter 呢
...全文
92 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
CoolHg 2002-04-10
  • 打赏
  • 举报
回复
其实你们所讲的我早知道啦(我提问题前两天吧),我想知道的是如果我要加一个特定的 Filter, 这个Filter对通过的数据不做任何改变,仅仅是多出几个 Output,(DS 里的例子啊),这个 filter是可以加到任何地方的啊,现在是我想做个示波器,这个示波器的数据就是从这个 filter 输出的,没有输出数据,如果我只接用 AddFilter 它确实可以加进去,可声音没了,就只能用 DS 中的例子来实现了,可用什么办法能确定它加到正确的地方(其实我已经实现了),问题是如果在其它地方呢,如要对 Video 也做个类似的,还有就是MIDI等等
如果谁给我一个 MP3 FileSource 的完成例子,我给200(不是这里的200啊,有点不想来这里玩了,几千分留着也没用啦)
CoolHg 2002-04-09
  • 打赏
  • 举报
回复
:)
miacle 2002-04-09
  • 打赏
  • 举报
回复
ds的各个filter之间主要是通过每个filter的PIN的media type来协商连接的
如果在你的filter的input和output pin的checkmedia函数你支持了某种媒体类型,就是说,filter1的ouput pin的如果和filter2的input pin的mediatype相互之间都同意一种媒体类型的话,那么filter1 -》 filter2的连接就会成功。由此推出两种应用filter的模式

1,通过ds的自动构造filter graph,通过调用IGRAPHBUILDER 的render方法。如果你的filter支持某一种媒体类型,并且它的merit值比较高(还是小,忘了,呵呵),你们它就会成为filter graph中的一员。

2,手动添加,
a,CoCreateInstance
b,addfilter(filter1)
c,connect or connectdirect
d,这样一直重复,直到把所有的filter都联了起来,那么就ok了

:-) 给分阿
ablo_zhou 2002-04-09
  • 打赏
  • 举报
回复
一般是采用自动调用filter的形式。如果directshow支持你的媒体格式,那么就可以自动建立filter图。除非你对自动建立的filter图不满意,例如,你不是希望直接播放,而是希望再处理存盘,才需要手动连接。
capboy 2002-04-09
  • 打赏
  • 举报
回复
在你自己的filter设置mediatype 在使用render函数.ds会自己找合适的filter.
(需要自己添加每个filter么?)
ququshb 2002-04-09
  • 打赏
  • 举报
回复
不行了,给分了。。。。不给,放我家狗狗咬你!!!@_@
ququshb 2002-04-09
  • 打赏
  • 举报
回复
不行了,给分了。。。。不给,放我家狗狗咬你!!!@_@
ququshb 2002-04-01
  • 打赏
  • 举报
回复
当然是你需要什么filter就使用什么了撒,ds又没说下一个filter一定是什么什么的,只要pin的类型匹配就可以了撒,还有有一个找匹配filter的接口可以看看,什么名给忘了,在列举系统filter一章的下面,还有filter可以用CoCoreateInstance创建,然后addfilter.. 然后connect....

8,301

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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