Original Post
Hello everyone. I am trying to implement the VMR9 in nightmare mode, I mean Renderless mode. I managed to get my code to the point where everything is created without fail, but I still can't get anything rendering. For some reason the IVMRImagePresenter9::PresentImage callback function is never called. When I make the call to m_pGraph->RenderFile(), the only callbacks that are called by the application are InitializeDevice(), GetSurface(), and TerminateDevice(). When I call IVMRFilterConfig9::SetNumberOfStreams() with a zero the following calls are made: InitializeDevice() GetSurface() TerminateDevice() InitializeDevice() GetSurface() TerminateDevice() InitializeDevice() GetSurface() TerminateDevice() and then the video is rendered in a pop up window not in my main window. When I call IVMRFilterConfig9::SetNumberOfStreams() with a one the following calls are made: TerminateDevice() TerminateDevice() TerminateDevice() InitializeDevice() GetSurface() and then nothing happens at all, just a blank screen, no audio. Is there a specific reason why IVMRImagePresenter9::PresentImage never gets called? When I call IMediaControl::Run() shouldn't the IVMRImagePresenter9::PresentImage function be called? I am trying to play a movie that has both video and sound should I SetNumberOfStreams() to 0, 1, or 2? I setup the VMR9AllocationInfo with the following flags: D3DDISPLAYMODE dm; m_pd3dDevice->GetDisplayMode( 0, &dm ); pAllocInfo->dwFlags = VMR9AllocFlag_3DRenderTarget; pAllocInfo->Format = dm.Format; pAllocInfo->Pool = D3DPOOL_DEFAULT; Should I be using a different flag such as VMR9AllocFlag_OffscreenSurface or VMR9AllocFlag_TextureSurface? I am sorry if this post is kind of confusing but VMR9 is confusing, there is just to many things that I could be doing wrong so, I don't really know where to look to solve this problem. By the way I have read all the posts on msdn, and tutorials I found on the internet referring to VMR9 Renderless mode.