I implement a pipeline VPP + ENC. VPP converts RGB4 data to NV12 and ENC encodes NV12 to JPEG, and I put libmfxsw.dll in the same directory as the execution file. It works on the most of Intel graphic platform. But I have an old platform, its graphic is Intel HD Graphics 3000 and Intel Media SDK version is 1.4. If I call MFXInitEx() with MFX_IMPL_HARDWARE_ANY, it failed when calling mfxENC->QueryIOSurf() the error code is MFX_ERR_UNSUPPORTED. If I call MFXInitEx() with MFX_IMPL_SOFTWARE, it failed on calling mfxVPP->Init (), the error code is MFX_ERR_INVALID_VIDEO_PARAM. I found the Media SDK doesn't load the libmfxsw.dll but load libmfxhw.dll. The libmfxhw.dll locates at c:\Program Files(x86)\Intel\Media SDK\ . If I remove the libmfxhw.dll then everything works fine. I also try to load libmfxsw.dll before calling MFXInitEx, it doesn't work.
How can I force the SDK to load the libmfxsw.dll even the Intel Media SDK is installed?