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.

DecodeFrameAsync keep return status MFX_WRN_DEVICE_BUSY

Leo_Z_
Beginner
545 Views

Hi, 

I'm using Intel Media SDK 2015R6 for live transcoding on CentOS 7.1 (Intel(R) Core(TM) i7-5650U CPUs), after a while the function DecodeFrameAsync keep return warning MFX_WRN_DEVICE_BUSY and then it enter an infinite loop,but intel_gpu_top shows the devices was idle and it will be normal when i restart the application.

 

Best Regards!

0 Kudos
5 Replies
Jeffrey_M_Intel1
Employee
543 Views

For decoding from network streams, you can try watching the Corrupted flag in mfxFrameData.  If it is nonzero, drain and reset your pipeline.  

By the way, you probably want to use metrics monitor instead of intel_gpu_top.

Please let us know if you still see this problem after adding the drain/reset step.

Regards, Jeff

 

 

0 Kudos
Leo_Z_
Beginner
543 Views

Hi Jeffrey,

Thanks for the reply.

I just tried to watch the Corrupted flag in mfxFrameData, it is ZERO as show in my output logs

(dec busy: frame 72074. Corrupted flags: 0.       dec busy: frame 72074. Corrupted flags: 0).

the Corrupted flag shows above is in the input mfxFrameSurface1 of function " MFXVideoDECODE_DecodeFrameAsync ", am i doing right?

and where can i get the "metrics monitor" you metioned, i'm using the sdk provided by artesyn, no such tools.

0 Kudos
Jeffrey_M_Intel1
Employee
543 Views

Sorry for the delayed reply.  The corrupted flag for the surface output from decode will show zero unless errors are detected in the input.

You probably want to update to the latest MSS release.  It has some new decode robustness features.

The metrics monitor is in /opt/intel/mediasdk/tools/metrics_monitor

 

0 Kudos
Leo_Z_
Beginner
543 Views

Hi Jeffrey,

Thanks for the reply.

I have confirmed that the problem was caused by packets losing of the source live stream. From what i saw in mfxDecodeStat from function GetDecodeStat(), the NumCachedFrame was keep increase until hit the maximum, and then return decode status MFX_WRN_DEVICE_BUSY, then it enter an infinite loop.

 

0 Kudos
Jeffrey_M_Intel1
Employee
543 Views

You may want to try checking the Corrupted field of the frames output by the decoder.  If this is nonzero reset the pipeline.  In the testing we've done this is sufficient to avoid the behaviour you've described for lost/corrupted packets.  If it doesn't for you, any help you can give with detailed info or, even better, code, to reproduce will help us resolve the problem.

0 Kudos
Reply