locked
Custom EVR Presesenter + Intel Media SDK RRS feed

  • Question

  • Hi,

    I have modified EVR Custom Presenter sample code from msdn. I added check for HW acceleration in GetService(). With this, when MS decoders are used, HW acceleration is getting used. But the same is not true with Intel codecs (Intel Media SDK). With custom EVR Presenter, Intel decoders wont use HW acceleration. But without EVR presenter, it is using HW acceleration. Anyone has any idea? Please help.

    Regards.
    Wednesday, January 19, 2011 12:35 PM

All replies

  • I am not sure what you mean for 'check for HW acceleration in GetService().'  If you are just checking if someone tries to get the IDirect3DDeviceManager9 interface from the presenter, the default topology loader always tries to get that interface.  That leads me to believe that you are not using the default topology loader when using the Intel decoders, which means you would need to set up DXVA manually.

    Here are some things I would check:

    - If you are inserting the Intel decoders into the topology yourself and avoiding the default MF topology loader, you need to set up DXVA manually.  This involves getting the IDirect3DDeviceManager9 interface from the EVR, and calling IMFTransform::ProcessMessage with MFT_MESSAGE_SET_D3D_MANAGER and the IDirect3DDeviceManager9 pointer.

    - Verify that your presenter handles the media types exposed by the decoder.  If a color converter needs to be inserted to convert to a color format supported by the presenter, hardware acceleration will not work because the color converter does software processing in system memory.  I would examine the topologies with the Intel decoders with and without your custom presenter and verify that the media types match.  If they do not, you may need to figure out how to make your presenter accept the desired media type.

     

    Thursday, February 3, 2011 11:19 PM