我已经写了一个DirectShow视频转换过滤器,它插在视频解码器和视频渲染过滤器之间。它会在输入图片周围添加一个相框。所以输出picutre的尺寸和长宽比与输入的不一样。如何使渲染过滤器不保持纵横比?
不幸的是,我发现视频渲染会保持原始的宽高比,所以带有相框的显示图片被拉伸。在GraphEdit中,我找到了一个名为“保持纵横比”的复选框的视频渲染过滤器。取消选中它,出图不会被拉伸。这就是我想要的。但我不知道如何在我的代码中执行此操作。我查询了界面IVideoWindow,但发现它无法设置纵横比。所以我在这里寻求帮助。
谢谢。
谢谢你,耶利米莫里尔。是的,IVMRAspectRatioControl7/9是我想要的。但看起来,为了获得界面,我必须首先获得过滤器Video Mixing Renderer Filter 7/9。我想在“视频渲染器”过滤器而不是“视频混合渲染器过滤器9”上设置高宽比。
我不需要动态变换格式。我的过滤器图形是
Source -> Demux -> Decoder -> MyFilter -> VideoRenderer
无论解码器输出的分辨率如何,MyFilter的输出分辨率总是与桌面屏幕相同。我发现,如果我使用智能连接,我会遇到我描述的问题。但是,如果我手动将MyFilter连接到VideoRenderer,则视频分辨率是正确的,即与屏幕相同。
谢谢。是的,IVMRAspectRatioControl7/9可以做我想做的。但我的问题是如何在“Video Renderer”过滤器上设置宽高比,因为我可以在GraphEdit上进行设置。 –