I am trying to use the Quick Sync Video H.264 Encoder MFT on Windows 10 to do hardware-accelerated encoding. I find that if I set the IMFDXGIDeviceManager on the transform, I get indication of resource leaks (live objects) when I exit my application. I suspect that I may not be shutting the encoder down properly. When I shut down, I do this:
1. Send the MFT_MESSAGE_COMMAND_DRAIN command (via ProcessMessage).
2. Respond to the METransformDrainComplete event notification by sending the MFT_MESSAGE_COMMAND_FLUSH message.
3. Set the input type and output type for the transform to NULL.
4. Call Release on the IMFTransform interface that I use to control the encoder transform.
Is there more that I should be doing to shut down the encoder and cause it to free all of the resources it is hanging on to?