Windows 7中的硬件加速缩放MFT

4
我正在寻找基于硬件加速(GPU)的视频缩放解决方案。我在以下帖子中找到了广泛的讨论:
如何使用硬件视频缩放器?
使用C++在Windows中进行硬件加速图像缩放

我尝试坚持使用MFT(Media Foundation Transform)进行缩放,因为我还在我的应用程序中使用 H.264编码器 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消息启用此功能。
并且MF_SA_D3D_AWARE在Windows 8及以上版本中得到支持。

在Windows 7中是否有使用硬件加速的缩放MFT?

我还没有调查如何使用硬件视频缩放器?中提到的其他两个选项(MFCreateVideoRenderer和IDirectXVideoProcessor :: VideoProcessBlt)是否支持Windows 7。但我正在积极寻找MFT选项。

1个回答

1
在Windows 7下,我建议您使用IDXVAHD_VideoProcessor
这里有一个样例:DXVA-HD Sample
但是我认为如果您使用简单的DirectXDevice9带有DirectXTexture9,缩放结果将会相同。没有理由专门为视频文件处理应用专用的缩放进程。我认为它们在游戏和视频文件方面都是一样的。
我看到唯一的问题是,您可以设置约束模式:DXVAHD_BLT_STATE_CONSTRICTION_DATA,适用于缩小,而不是扩大。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接