windows7中的硬件加速缩放MFT

时间:2016-02-25 07:16:05

标签: c++ windows scaling ms-media-foundation mft

我正在搜索基于硬件加速(GPU)的视频缩放。我在以下主题中找到了广泛的讨论 How to use hardware video scalers?
Hardware Accelerated Image Scaling in windows using C++

我尝试坚持使用基于MFT的缩放,因为我在我的应用程序中也使用 H.264 Encoder MFT。
我们有两种基于MFT的解决方案 -
 1. Video Resizer DSP
 2. Video Processor MFT

但这两种方法都使用了MF_SA_D3D_AWARE。如下所述:
  视频MFT具有属性MF_SA_D3D_AWARE .aspx,可用于查询是否支持DirectX 3D硬件加速,并且可以通过向其发送MFT_MESSAGE_SET_D3D_MANAGER消息来启用。 < /强>
Windows 8 以后版本支持MF_SA_D3D_AWARE。

他们的任何缩放MFT是否在Windows 7中使用硬件加速?

我没有调查它在Windows 7中支持的How to use hardware video scalers?中提到的其他两个选项(MFCreateVideoRenderer和IDirectXVideoProcessor :: VideoProcessBlt)。但我正在积极寻找优先MFT选项。

1 个答案:

答案 0 :(得分:1)

在Windows 7下,我建议您使用IDXVAHD_VideoProcessor

您在此处有一个示例:DXVA-HD Sample

但我认为如果你使用一个简单的DirectXDevice9和DirectXTexture9,缩放结果将是相同的。专用缩放过程没有理由仅适用于视频文件过程。我认为它们(游戏和视频文件)都是一样的。

我看到的孤独的事情是,你可以设置收缩模式:DXVAHD_BLT_STATE_CONSTRICTION_DATA ,适用于降尺度,而不是真正升级。