Quantcast
Channel: Intel® Software - Media
Viewing all articles
Browse latest Browse all 2185

Correct handling of MFX_ERR_ABORTED from MFXVideoCORE_SyncOperation

$
0
0

Hello all, I am quite desperate with this issue:

We have two steps  in the pipeline: VPP -> H.264 Encode. So we sync the output operations with the sync point from encode. The problem is we sometimes experience MFX_ERR_ABORTED. when trying to sync to the output sample. I have found this explanation that in such case I should sync to the previous function (which is VPP): https://software.intel.com/en-us/node/696109#Pipeline_Error_Reporting

That's cool, so I tried to do something like this pseudocode:

var sts = sync(encSyncPoint)
if (sts == ABORTED) {
    sts = sync(vppSyncPoint)
}

MFX_WRN_IN_EXECUTION from sync with VPP which usually means I should just try a little later. That's fine, so I changed the code that I just need to wait:

var sts = sync(encSyncPoint)
if (sts == ABORTED) {
    sts = sync(vppSyncPoint)
    if (sts == IN_EXECUTION) continue; // try in 1ms again
}

And it works - somehow - after a few iterations tops, the VPP results with NO_ERROR. But even after that sync with encSyncPoint still returns ABORTED. So... what actually happened? Did the previous VPP step really complete? And if it did, why the encode got aborted instead of just waiting for the previous step to complete?

I have attached the sample per-fame trace file.

AttachmentSize
Downloadapplication/ziptracer.zip719.68 KB

Viewing all articles
Browse latest Browse all 2185

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>