Media Foundation:强制捕获设备在拓扑中提供DirectX表面

时间:2016-09-08 10:00:19

标签: video-capture directx-9 ms-media-foundation dxva

上下文

我写了一个使用DXVA的MFT。它要求输入样本具有IDirect3DSurface9表面。

我在3个节点的拓扑中使用此MFT:

  • 包装从捕获设备激活器创建的媒体源的源节点,
  • 包含我的MFT实例的转换节点
  • 包含EVR的输出节点。

我在拓扑上将MF_TOPOLOGY_DXVA_MODE属性设置为MFTOPOLOGY_DXVA_FULL并将MF_TOPOLOGY_HARDWARE_MODE设置为MFTOPOLOGY_HWMODE_USE_HARDWARE,当我启动媒体会话时,我从MFT内部收到一个D3DDeviceManager。

问题

当输入样本从拓扑内部到达MFT时,他们没有连接到D3D表面(MFGetService MR_BUFFER_SERVICE失败)。

如果我根本不使用拓扑,并使用有效MF_SOURCE_READER_D3D_MANAGER从同一媒体源创建源阅读器,那么源阅读器提供的样本将具有D3D表面。

问题

是否可以使拓扑中的源节点/捕获媒体源生成具有D3D表面的样本?

0 个答案:

没有答案