我们创建了一个自定义推送源/解析器过滤器,该过滤器有望在编辑服务时间轴中工作。解析器过滤器应该如何在directshow编辑服务中运行?
现在一切都只是在当前
切达到it's端过滤器不会停止提供样品大。呈现停止,但下游过滤器继续消耗
样本。过滤器提供样本直至达到EOF。这会导致较高的CPU负载,因此应用程序不可用。
大量的调查后,我没能找到一个合适的机制,可以通知我的过滤器
的切割是在这样的过滤器需要停止:
- 的交付功能所连接的解码器销总是返回S_OK,这意味着附加的译码器
也没有意识到IMediaSamples正在下游丢弃
有在过滤器图表
没有冲洗的IMediaSeeking :: SetPositions接口使用,但仅仅是个开始位置被设置 -
我们总是指示播放到文件末尾。
使用时IAMTimelineSrc :: SetMediaTimes(启动,停止)从应用
,这将设置停止时间太长,但这种情况不会发生我所期望的。
我还试图操纵XTL时间表加入“MSTOP”属性在
希望这将意味着停止位置被设定所有的剪辑,但无济于事
从过滤器的角度来看,输出缓冲区始终可用(因为IMediaSamples将被丢弃到下游),所以过滤器尽可能快地填充样本,直到源文件完成。
过滤器能够检测何时停止或我们可以从应用程序端执行任何操作吗?
非常感谢
的Tilo