在DirectShow中处理动态格式更改
||
我只有一个简单的图形:
SourceFilter ---> CustomTransformFilter --> VideoRendererFilter
在我的CustomTranformFilter中,我动态地更改视频属性:即,我将视频重新缩放为新尺寸。
Input Video[1024,720]-->|CustomTransformFilter|--->Output Video[640,480]
但是我的渲染器看到的视频仍然是原始大小([1024,720]尚未缩放[640,480])
而且我在视频渲染器上收到损坏的图像:由于渲染器尝试根据旧尺寸绘制新图像...
我该如何解决?
最好的祝愿
更新:
据我了解,戴维斯回答:
Given: The graph is active, but the filters in question do not support dynamic
pin reconnections
和
Possible mechanisms for changing the format: (MSDN DirectShow Doc)
a. QueryAccept (Downstream)
b. QueryAccept (Upstream)
c. ReceiveConnection
戴维斯建议使用ReceiveConnection。
ReceiveConnection:在输出引脚建议将格式更改为时使用
下游对等体,新格式需要更大的缓冲区。 (MSDN DirectShow文件)。
gmfbridge的示例是“太复杂”,我无法确定如何使用“ ReceiveConnection”。
我是DirectShow的新手。
有没有一个简单的代码示例使用ReceiveConnection机制来响应动态格式更改?
没有找到相关结果
已邀请:
1 个回复
响摔衅幸