有没有什么好的例子可以展示如何渲染IMFSample
H.264 解码器的输出?我的场景使用 4K 分辨率的 H.264 流,而我的目标 PC 将只接受使用 DXGI 缓冲区的 1080p。但是 H.264 解码器将处理 4K,因此我需要找到一种方法将 NV12IMFSample
直接馈送到 DirectX 11 渲染器。我已经尝试过使用DX11VideoRenderer示例,但由于这个特定IMFSample
的没有IMFDXGIBuffer
接口而失败。
看起来在DX11VideoRenderer中输入IMFDXGIBuffer
是 NV12 类型,并且可以在硬件中成功渲染。因此,NV12 类型的非 DXGI 缓冲区也应该是可以接受的,这似乎是合乎逻辑的?
也许我需要创建一个ID3D11Texture2D
NV12 类型的纹理或资源?我找到了如何从文件创建纹理的示例,但没有找到如何从样本创建纹理的示例,这似乎更有用。如果我可以创建 NV12 纹理,如何找出 NV12 结构中的SysMemPitch
和SysMemSlicePitch
值D3D11_SUBRESOURCE_DATA
?
任何帮助将非常感激!谢谢你。