Sample_vpp is not converting nv12 to yuy2 when using software acceleration. I tried sw dll (libmfxsw64.dll) from Intel(R) Media SDK 2018 R1 and Intel(R) Media SDK 2019 R1, and both produced same issue. You can reproduce it by simple command line:
sample_vpp -i test_1920x1080.nv12 -o out.yuv -sw 1920 -sh 1080 -scc nv12 -dw 1920 -dh 1080 -dcc yuy2 -lib sw
If I use hardware acceleration (-lib hw option) then this conversion is fine, so I think issue is in libmfxsw64.dll only.
I basically confirmed the behavior on 2019 R1, the output in software mode has a different pixel packing and back to normal when I switched to hardware mode. but I have a detailed question: which tool do you used to check YUY2. I used the rawpixels.net but the color looks like the UV channels being switched.
I am using yuvplayer.exe (https://www.softpedia.com/get/Multimedia/Video/Video-Players/YUV-Player.shtml) to check the yuv output. Also, I use to check with our render app which is capable of rendering various yuv formats. To me, it seems the output frame is mixup yuy2 and nv12 at some parts.
Thanks so much,
I had submit the bug yesterday and kinda confirmed the behavior, although the color of the output in "-lib hw" has a different color, it looks the U and V channel was swapped. I will check it again with yuvplayer.exe
I will keep you updated.
Thanks Mark for submitting this bug. It would be great to get fix of this asap as it is causing issue in our product on those pc which are not having intel graphics card.
Meanwhile, I implemented manual conversion of NV12 to YUY2 (by parsing each pixels of nv12 and rearranging them as per yuy2 ordering). Though it is working fine but its surely more cpu & time consuming operations.