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.

Correct handling of MFX_ERR_ABORTED from MFXVideoCORE_SyncOperation

Petr_B_
Beginner
556 Views

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.

0 Kudos
2 Replies
Artem_S_Intel
Employee
556 Views

Hi Petr, is it possible to share reproducer?

0 Kudos
Petr_B_
Beginner
556 Views

We can reproduce this behavior with the sample Directshow filter:
https://software.intel.com/en-us/articles/media-transcoding-sample-using-microsoft-directshow

But we discovered that the behavior happens only with one specific video source, this card:
https://www.startech.com/AV/Converters/Video/HD-PCIe-capture-card-HDMI-VGA-DVI-CPNT-1080p-60FPS~PEXHDCAP60L

If we use another source, this doesn't happen. Is it possible that the samples could be somehow corrupted and that would cause MFX_ERR_ABORTED? Or is there any other problem which could cause MFX_ERR_ABORTED even on sync with VPP?

We can provide you with remote access to the PC where the card is installed and there is Windows, Visual Studio with the filter source codes etc. Could you contact me on my email petr.briza@gmail.com?

0 Kudos
Reply