上下文
我写了一个使用DXVA的MFT。它要求输入样本具有IDirect3DSurface9
表面。
我在3个节点的拓扑中使用此MFT:
我在拓扑上将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表面的样本?