Speeding up Video reading when using SourceReader RRS feed

  • Question

  • Hi,

    I am using the SourceReader in my application to decode video. My application does not render the decoded video to the monitor but serves to read in the video data as a matrix which users are further manipulate. I am using the SourceReader in synchronous mode and I am able to process frames in a HD video at about 17 fps. This is slow because Media Player is able to play this file comfortably at 30fps.

    I am looking at how to improve the performance. Looking at the documentation, there appear to be two possible ways I can do this:

    1. Use the SourceReader in asynchronous mode

    2. Make use of hardware acceleration (DXVA) using the MF_SOURCE_READER_DISABLE_DXVA and MF_SOURCE_READER_D3D_MANAGER attributes of the Source Reader

    I am interested in Option2. This appears to require a Direct3D Device Manager and a Direct3D device. Also, the documentation states that this is recommended when decoding and rendering to a screen. 

    As I do not want video to be rendered to the display, there a Direct3D device which is like a Null Renderer or is there an option in a Direct3D device to disable rendering to a screen.

    Or is my only option for speeding up performance to operate the SourceReader in asynchronous mode?

    Any inputs will be appreciated.



    Friday, January 16, 2015 6:49 PM