Hi,
I've created a decoder with MFX_IMPL_SOFTWARE and have a VPP component that does the following:
p.vpp.In.FourCC = MFX_FOURCC_NV12;
p.vpp.Out.FourCC = MFX_FOURCC_YUY2;
, i.e. it converts the decoder output (which is NV12) to YUY2 before I grab the data and send it off elsewhere. This conversion happens no problem with MFX_IMPL_HARDWARE with an Intel HD. Software doesn't appear to perform the conversion (my image is split, green and pink/purple and about 1/4 size). I replaced my D3D11 allocator with a SysMem one, just in case that was doing something but no dice. It made no difference.
Will MFX_IMPL_SOFTWARE perform these conversions or do we need to do them ourselves? Btw, I'm diligently examining return codes for errors and everything appears to be working fine (no errors).
Note: Something odd about use of libmfxsw32.dll, if your code is debug the dispatcher looks for libmfxsw32_d.dll but this isn't shipped with the SDK and there's no way to build it. Renaming the existing libmfxsw32.dll to libmfxsw32_d.dll allows you to link however.