Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Steinhour__Wayne
Beginner
113 Views

Quick Sync Video H.264 Encoder MFT resource leak

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?

 

0 Kudos
3 Replies
Mark_L_Intel1
Moderator
113 Views

Hi Wayne,

QSV supports MFT, so to close the encoder, it should follow the standard MFT rule.

I have submitted a request to dev team but could you double check your code to see if it satisfies the MFT protocol? Basically you should use the same rule to run software encoding without leak.

Mark 

Steinhour__Wayne
Beginner
113 Views

Mark,

I'm not sure what you mean by "standard MFT rule" or "MFT protocol".  Could you point me toward some documentation or example code?

Wayne

Mark_L_Intel1
Moderator
113 Views

Hi Wayne,

If you use the other codec, you will still have to close encoder and release resources. So I meant you could check if MFT has the standard way to release resources like encoder.

I will send you update when I got response from dev team.

Mark 

Reply