来自https://msdn.microsoft.com/en-us/library/windows/desktop/dd797815%28v=vs.85%29.aspx
在约束中,您会看到“DXVA加速的最大保证分辨率为1920×1088像素;在更高分辨率下,如果底层硬件支持,则使用DXVA进行解码,否则,使用软件进行解码。“
有没有办法检测解码是否在软件中完成?
尝试解码4K H264视频时,我们遇到AMD图形控制器问题。
我们知道硬件不支持4K解码,理论上它应该回归软件。 但是,我们发现无论它应该做什么,我们都会遇到很多损坏或黑框。
我希望我们能够检测到DXVA是否已经回归SW解码,在这种情况下我们根本不会尝试使用DXVA而是使用完整的软件路径。
谢谢
答案 0 :(得分:1)
H264 MFT不会暴露它是否使用DXVA进行解码。
它使用IDirectXVideoDecoderService::CreateVideoDecoder
创建DXVA解码器,因此您可以手动调用此函数以查看它是否成功。
答案 1 :(得分:0)
您是否尝试过通过mftrace运行应用程序(包含在Windows SDK中)? mftrace输出非常详细,通常会让您知道哪个MFT用于编码。当硬件编码可用时,您可能能够发现正在使用的其他MFT。
例如,对于H264编码,当系统硬件支持时,将使用Intel MFT(一种硬件编码器)代替标准的Microsoft MFT。