Media (Intel® Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools like Intel® oneAPI Video Processing Library and Intel® Media SDK
Announcements
The Intel Media SDK project is no longer active. For continued support and access to new features, Intel Media SDK users are encouraged to read the transition guide on upgrading from Intel® Media SDK to Intel® Video Processing Library (VPL), and to move to VPL as soon as possible.
For more information, see the VPL website.

Quick Sync Video H.264 Encoder MFT resource leak

Steinhour__Wayne
Beginner
1,127 Views

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
4 Replies
Mark_L_Intel1
Moderator
1,127 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 

0 Kudos
Steinhour__Wayne
Beginner
1,127 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

0 Kudos
Mark_L_Intel1
Moderator
1,127 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 

0 Kudos
Freud
Beginner
845 Views

cpu: i5 8400 / i9 9900

gpu: Intel® UHD Graphics 630

OS: win 10 / 11
driver:  27.20.100.9616 / 30.0.101.3113  / 31.0.101.2111 (Latest)

code:  https://gist.github.com/KeloCube/0e56ba7f2c5729223483147eb35d9cc7

 

issue: 

resource leaks  when stopped. 

It's normal on amd and nvidia gpu。

0 Kudos
Reply