Filter连接问题,高手帮忙分析下

jvy 2008-12-21 09:45:45
我写了个Source Filter 与解码的Filter相连,在graphedt中调试连接没问题
可是在程序中手动连接却连不上,用graphedt查看Filter也全加入了,而且是按F5调试运行的话看函数返回没错并且能连上,但直接运行不成,如何解决啊
...全文
110 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
UDX协议 2008-12-25
  • 打赏
  • 举报
回复
那应该和你的读文件有关系,我曾经也写过一个拉模式的source filter.

你看一下你的文件指针的操作。应该是格式读取不正确。
检查IAsyncReader的实现。


jvy 2008-12-25
  • 打赏
  • 举报
回复
正确不正确我全加入rot了,用graph查看没有连接,我弹box主要是想看返回什么东西(因不在调试状态无法知道返回),返回确实不成功
按F5调试运行,返回值正常,用graph查看连接成功

source filter没有连接何DLL,一个简单拉模式Filter,读取文件给Splitter Filter
文件路径在程序中写死了并且是绝对路径,应不存在读不同文件问题
UDX协议 2008-12-25
  • 打赏
  • 举报
回复
1.分两种情况,在你认为正确的时候,和不正确的时候,把graph都加到rot中,通过ge查看一下是否联接成功?不要弹什么box,可能会误导。

2.如果问题 还是存在,你就要看,你调试和运行的时候,是不是同一个ax文件。

3.你的source filter是否需要其他的东西,dll?
jvy 2008-12-25
  • 打赏
  • 举报
回复
谢谢楼上,其实现在我所说的主程序就是我写的一个小测试程序,Source Filter是我写的,而且在GraphEdit测试过,感觉没问题了,所以才打算加入到我程序中测试,如果这一步在成功了,OK最后移到公司工程里,可是在这卡住了,我不明白的是运行不成,可我调试就又成功,弄的我不能设断点调了。
没搞过这个,只有继续想办法
UDX协议 2008-12-25
  • 打赏
  • 举报
回复
然后是获得Pin进行Connect,直接运行程序不成功, 用GraphEdit查看发现没有连接
进入调试,设断点按F5运行,返回值又正确,在用GraphEdit查看,发现连接上了
---------------

如果ge中正确的话应该写程序没有问题的,按照你的思路一步步做,相信你可以搞定。问题是,你的其他条件是否准备好,和你的在ge中测试一样吗?

你可以做一个最简单的程序,不要和你的业务混在一起,当没有错的时候,再移动你的工程当中。
你会在ge中手动联接,应该就成功了一半。

祝你好运!
jvy 2008-12-25
  • 打赏
  • 举报
回复
这个Filter我在GraphEdit里构建graph时测过了,连接没问题,播放也没问题,这才开始写主程序,谁知道会是这样
jvy 2008-12-25
  • 打赏
  • 举报
回复
手动连接,就是指定OutPin与inputpin,然后Connect,因为用Render会连到别的Filter
步骤:
先将要连接的Filter加入graph,程序返回正确, 注册graph,用GraphEdit查看也没问题
然后是获得Pin进行Connect,直接运行程序不成功, 用GraphEdit查看发现没有连接
进入调试,设断点按F5运行,返回值又正确,在用GraphEdit查看,发现连接上了

我后又加Masgbox在运行时弹信息看返回 VFW_E_CANNOT_CONNECT ,搞不懂了
jvy 2008-12-25
  • 打赏
  • 举报
回复
结贴了,我找到原因了。文件操作成功,指针没问题 不过还是很感谢wwwllg的热情回答
可能是各种原因巧合才让我碰到这种问题,在构建graph后,加了个Sleep一切OK,下一步优化

第一次写DS程序,学了不少

散分了
咋了啦 2008-12-24
  • 打赏
  • 举报
回复
在GraphEdit中能够连接上,手动连接不上?你是怎么手动连接的,是枚举outputpin 和 inputpin,然后connect么?
Jartru 2008-12-24
  • 打赏
  • 举报
回复

不手动连接,直接render你的Source Filter伤的oup pin看看,render前把需要的filter加入到graph中。
UDX协议 2008-12-23
  • 打赏
  • 举报
回复
第一步把所有的filter加到graph图中,然后检查各个filter之间的联接,如你手动在ge中操作一样。你可以注册graph链路到ge中,在完成后,你通过ge查看,你连接的graph是否和你想象的一致。
从你的现象来看,应该是没有按照你想象的联接来联接filter.
jinlking 2008-12-22
  • 打赏
  • 举报
回复
你说的“手动连接”是怎么手动的,只是添加FIlter然后Render?
qqlpp 2008-12-21
  • 打赏
  • 举报
回复
帮顶

2,543

社区成员

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

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