DirectShow SDK中的一点不明白

Big_Stone 2005-11-09 10:49:23
请教一个问题。
在输入的AttemptConnection中,有这么一句
pReceivePin->ReceiveConnection((IPin *)this,pmt);
输入Pin检查是否接受这个媒体类型,那么pmt应该是输出PIN上的媒体类型。但是问题是这个pmt对应的实参在AgreeMediaType可能来自输出PIN,也可能来自输入PIN。 如果来自输入PIN,还有什么意思呢。既然是输入PIN为了检查是否能和输出PIN建立连接。那么比较的应该是输入和输出PIN各自的媒体类型了。输入PIN用自己的媒体类型来和自己做比较。这是什么意思呢?!

ReceiveConnection 的实现里边好象也没有什么比较的东西,看不出在哪里比较的。请高手指点一下。
...全文
201 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bruceharbin 2005-11-11
  • 打赏
  • 举报
回复
呵呵,我是初学者,最近也在研究这个connect过程..下面说说我的理解.
如你所说,这个pmt对应的实参在AgreeMediaType可能来自输出PIN,
也可能来自输入PIN。所以ReceiveConnection要考虑这两种情况.
所以如果是我来设计这些函数,我会说,如果pmt对应的实参在AgreeMediaType可能来自输出PIN,则pReceivePin->ReceiveConnection((IPin *)this,pmt);如果来自输入PIN,则肯定OK..
但是directshow设计者可能是为了,将各个函数功能划分比较清晰,整个流程看起来比较清晰..

哈哈,瞎说一通..大家共同进步..小弟刚刚开始学习code,多多指教

2,543

社区成员

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

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