I have found a bug in the VPP scale/resize function of libmfxsw64.dll
This happens in the latest version of libmfxsw64.dll, that is 126.96.36.199, and older versions too.
There is no issue in the hardware VPP function, or when using MFX_IMPL_HARDWARE
This issue will occur when using MFX_IMPL_SOFTWARE
Here is the carefully crafted reproduction:
- Download the attached file, and run the following commands:
- rename colors.1920x1080.nv12.yuv.f colors.1920x1080.nv12.yuv
- sample_vpp -lib sw -sw 1920 -sh 1080 -scc nv12 -dw 1920 -dh 1080 -dcrX 1 -dcrW 1280 -dcrH 720 -dcc nv12 -i colors.1920x1080.nv12.yuv -o bad.1920x1080.nv12.yuv
- sample_vpp -lib hw -sw 1920 -sh 1080 -scc nv12 -dw 1920 -dh 1080 -dcrX 1 -dcrW 1280 -dcrH 720 -dcc nv12 -i colors.1920x1080.nv12.yuv -o good.1920x1080.nv12.yuv
You will now have two output files, the correct file 'good*' and the incorrect file 'bad*'
Please view the two files and you will see how only the software VPP scale/resize messes up the colors.
The cause of the issue is the combination of the '-lib sw' and the '-dcrX 1' flags, or MFX_IMPL_SOFTWARE and mfxFrameInfo.CropX elements.
This is not an issue if mfxFrameInfo.CropX%2==0, this is only an issue when mfxFrameInfo.CropX%2==1
If the team decides not to support 'mfxFrameInfo.CropX%2==1' for whatever reason, please add note to documentation AND return a fatal error code when attempting to use the unsupported values inside mfxFrameInfo.
I hope this is enough to get the issue into the correct queue inside Intel, but if not, and you need a formal report filed though another channel, please let me know.
Thank you very much, Cameron Elliott
I am attaching my system_analyzer output. It might be useful to note the issue reported is basically independent of the system configuration, and thus system configuration has little affect on the presence/absence of the issue. The important variables for demonstrating when the bug occurs, and when it does not occur are highlighted in the bug reproduction steps above.
I have reproduced this issue and escalated it to MSDK develop team.
Hope this issue can be fixed in the next release, I will update this thread when I heard something regarding this issue.