开发者

Controlling the aspect ratio in DirectShow (full screen mode)

开发者 https://www.devze.com 2023-03-21 18:15 出处:网络
I\'m using DirectShow with a simple approach (IGraphBuilder RenderFile) and try to control everything else with querying supplemental interfaces.

I'm using DirectShow with a simple approach (IGraphBuilder RenderFile) and try to control everything else with querying supplemental interfaces.

The option in question is aspect ratio. I thought that it is maintained by default, but actually the same program behaves differently on different machines (maybe versions of DirectX). This is not a huge problem for a video in a window, because I can maintain the aspect ratio of my window by myself (based on the video size), but for full-screen mode I can not understand how can I control.

I found that there are at least two complex options: for VMR video and with adding overlay mixer, but is there a known way for doing 开发者_运维知识库this for IGraphBuilder' RenderFile video?


When you do IGraphBuilder::RenderFile, it internally adds a video renderer filter to the graph. It is typically a VMR-7 Video Renderer Filter:

In Windows XP and later, the Video Mixing Renderer 7 (VMR-7) is the default video renderer. It is called the VMR-7 because internally it uses DirectDraw 7.

At this point you can enumerate graph's filters, locate VMR-7 and use its interfaces such as IVMRAspectRatioControl to specify mode of interest.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号