Filter 如何动态修改DirectShow筛选器输出引脚的属性?

Filter 如何动态修改DirectShow筛选器输出引脚的属性?,filter,directshow,mjpeg,Filter,Directshow,Mjpeg,我有一个DirectShow源过滤器,用于接收包含RFC2435数据的网络流(MJPEG over RTP) 源过滤器输出引脚的属性需要在接收流之前设置,流是图像尺寸数据的唯一来源。输出引脚的尺寸当前设置为一些默认值(640x480) 在已经创建输出引脚并连接到另一个解码MJPEG数据的过滤器后,是否可以修改输出引脚的属性以反映新图像的尺寸?我相信答案是使用“动态格式更改”机制,该机制可用于切换媒体类型。这可以通过几种不同的方式完成,具体取决于图形是活动的还是停止的。MSDN的下一页解释了详细信

我有一个DirectShow源过滤器,用于接收包含RFC2435数据的网络流(MJPEG over RTP)

源过滤器输出引脚的属性需要在接收流之前设置,流是图像尺寸数据的唯一来源。输出引脚的尺寸当前设置为一些默认值(640x480)


在已经创建输出引脚并连接到另一个解码MJPEG数据的过滤器后,是否可以修改输出引脚的属性以反映新图像的尺寸?

我相信答案是使用“动态格式更改”机制,该机制可用于切换媒体类型。这可以通过几种不同的方式完成,具体取决于图形是活动的还是停止的。MSDN的下一页解释了详细信息


我认为答案是使用“动态格式更改”机制,该机制可用于切换媒体类型。这可以通过几种不同的方式完成,具体取决于图形是活动的还是停止的。MSDN的下一页解释了详细信息


说这就是答案,但很难找到使用这种机制的例子!请看www.gdcl.co.uk/gmfbridge--此示例通过将媒体类型附加到示例以及在输出引脚上调用ReceiveConnection来更改媒体类型--后一种形式在连接到视频渲染器时是必需的,因为您需要它来更改缓冲区大小。谢谢,刚刚找到了从CTransformInputPin派生一个新InputPin类的线程,这样我就可以实现ReceiveConnection方法了,但是通过讨论线程的方式,可能会遇到分配器的问题!虽然说这就是答案,但事实证明很难找到这种机制在使用中的例子!请看www.gdcl.co.uk/gmfbridge--此示例通过将媒体类型附加到示例以及在输出引脚上调用ReceiveConnection来更改媒体类型--后一种形式在连接到视频渲染器时是必需的,因为您需要它来更改缓冲区大小。谢谢,刚刚找到了从CTransformInputPin派生一个新InputPin类的线程,这样我就可以实现ReceiveConnection方法了,但是通过讨论线程的方式,可能会遇到分配器的问题!