一、几种模式比较
VMR9 Render在连接AllocatorPresenter时,可以为Renderer设置一个UserID。这个UserID与VMR9Renderer一一对应。
HRESULT SetAllocatorPresenter( IBaseFilter *filter,
HWND window,
SmartPtr<IVMRSurfaceAllocator9>,
DWORD_PTR UserID );
1、一个VMR9 Renderer对一个AllocatorPresenter
如果仅有一路视频输入,这也是最简单的情况。解码后的视频流输入VMR9 Renderer后,只要对Direct3D场景进行正确设置,再将从视频输入取得的贴图,渲染到每个窗口表面上,就能实现多窗口播放了。
当VMR9 Renderer有多路视频输入时,Allocator的InitializeDevice仅在连接第一路视频时被调用。(不知如何取到贴图)
2、多个VMR9 Renderer对一个AllocatorPresenter
多个VMR9 Renderer在一个FilterGraph中
测试中...
每个VMR9 Renderer在一个对应的的FilteGraph中
测试中...