Hello,
I am trying to write application which decodes h264 video frames and displays them. Because i have to do some processing before rendering i decided to not use media session and provide frames manually by reading them by SourceReader and then providing frames to decoder IMFTransform. I am able to do it in software mode, but performance is too slow, so i want to enable hardware accelerated decoding. What steps do i have to take to achieve that?
As far as i understand from documentation and samples all i have to do is
- Create Direct3DDeviceManager9
- Create Direct3D device
- Set device in Direct3DDeviceManager9
- Set CODECAPI_AVDecVideoAcceleration_H264 to True in decoder IMFTransform
- Send MFT_MESSAGE_SET_D3D_MANAGER with pointer to Direct3DDeviceManager9 to decoder IMFTransform
But it still runs in software mode. Am I missing something?