Open
Description
Windows 11, A380 card, latest drivers .6458.
Software works with in-memory frames in YV12, with NV12 output after VPP.
Attached source frame and the one generated by VPL. The image is somehow stretched and squeezed, plus overlaid with something that looks like a mask in a blocks 4x4 (or 8x8?).
I'm pretty sure my code is ok, because it works correctly after replacing mfxExtVPPAIFrameInterpolation with simple mfxExtVPPFrameRateConversion.
My init code:
mfxVideoParam VPPParams = {};
_fillFrameInfo(&VPPParams.vpp.In, MFX_FOURCC_YV12, width, height, 24, 1);
_fillFrameInfo(&VPPParams.vpp.Out, MFX_FOURCC_NV12, width, height, 24*mul, div);
VPPParams.IOPattern = MFX_IOPATTERN_IN_SYSTEM_MEMORY | MFX_IOPATTERN_OUT_SYSTEM_MEMORY;
mfxExtVPPAIFrameInterpolation aiFrameInterpolation = {};
aiFrameInterpolation.Header.BufferId = MFX_EXTBUFF_VPP_AI_FRAME_INTERPOLATION;
aiFrameInterpolation.Header.BufferSz = sizeof(mfxExtVPPAIFrameInterpolation);
aiFrameInterpolation.FIMode = MFX_AI_FRAME_INTERPOLATION_MODE_DEFAULT;
aiFrameInterpolation.EnableScd = 1;
mfxExtBuffer *ExtParam[] = { (mfxExtBuffer *)&aiFrameInterpolation };
VPPParams.NumExtParam = 1;
VPPParams.ExtParam = ExtParam;
MFXVideoVPP_Init(session, &VPPParams);