0

我正在起诉IMediaSeeking::SetPositions将视频设置为某个帧。但是,如果视频播放被暂停,但有时,如果我SetPositions一个接一个地做很多,直到我再次开始播放时才会重绘。我尝试使用IVMRWindowlessControl9::RepaintVideoafterSetPositions但框架保持不变。
有没有办法在搜索期间暂停\重绘当前帧VMR9

4

1 回答 1

0

在标准管道中,过滤器图上没有实体来保留最后一个良好的视频帧以用于重绘。查找涉及刷新线路上的剩余部分,然后使用来自新流点的新数据预加载它。

如果您想在搜索操作正在进行时为视频渲染器提供一种要显示的横幅,我会这样做的方法是在靠近视频渲染器的管道的视频腿上放置一个额外的自定义过滤器。过滤器负责保存最后显示的帧的副本,并且它能够在从上游连接接收到有效帧之前,在寻找操作时将此数据下游传递给视频渲染器。

最后显示的帧的方便副本可能也适用于其他场景,因为过滤器可以在应用程序可能需要的任何时候根据请求重新传递数据。例如,当应用程序更新 VMR 的混合器位图时,可以使用此功能,并且 VMR 期望下一个主视频帧来可视化位图更新。过滤器可以通过传递它所持有的副本来强制更新。

于 2013-07-19T15:34:41.113 回答