如何在无渲染模式下使用vmr7?

时间:2017-10-30 04:21:50

标签: c# video directshow renderer

当我想在无渲染模式下创建vmr7过滤器时,我发现我无法找到此界面IVMRSurfaceAllocatorNotify,似乎界面已被标记为过时。所以如何使用无渲染模式并进行自定义分配器,以便我可以在自定义用户控件中呈现视频?

2 个答案:

答案 0 :(得分:0)

接口IVMRSurfaceAllocatorNotifyDirectShow.NET's src \ VmRender.cs中定义。该库还为Samples \ VMR9 \ VMR9Allocator(和Samples \ VMR9 \ VMR9Allocator2)中的VMR-9提供了示例。您可以以类似的方式实现无渲染的VMR-7(VMR-7的界面实际上更简单)。

如果您正在寻找有关如何处理IVMRSurfaceAllocatorNotify的示例代码,2005年2月的DirectX SDK Extras包括Renderless和TxtPlayer示例,其中包含使用VMR-7无渲染模式(C ++代码,您需要转换为C# ,DirectShow.NET确实有IVMRSurfaceAllocatorNotify}的必要声明。

答案 1 :(得分:0)

在C ++ DirectShow代码上您可以将CLSID_VideoMixingRenderer9用于VMR9或CLSID_VideoMixingRenderer用于VMR7

IBaseFilter *m_pVideoRenderer; CoCreateInstance(CLSID_VideoMixingRenderer9, 0, CLSCTX_INPROC_SERVER, IID_IBaseFilter, reinterpret_cast<void**> &m_pVideoRenderer));