IMSDK has a software fallback mode that can be used if "mfxSession.Init(MFX_IMPL_HARDWARE_ANY, &version)" fails, that is to say if no Intel HD is available.
My problem is to give useful messages and guidance to the end user if hardware acceleration is not available.
1)if MFX_IMPL_HARDWARE_ANY fails, it can mean that Intel HD is present, but drivers are not up-to-date. What is the most reliable way to tell if an Intel HD (compatible with IMSDK) is present ? I could programatically query the Widnows Device Manager for any "Intel HD*" component, query some architecture version, then fetch ark.intel.com/search?q=Intel+HD and perform some analysis of the HTML result, based on my knowledge of the compatibility list.
Since Intel HD is embedded in many Core-i* processor, I can do the same kind of query (thanks to ark.intel.com) according to the CPU of the host machine.
However, it needs network access, seems not very reliable, and is far from "simple". What could be done instead ?
3)If no Intel HD is known by the Windows Device Manager, the reason may be that it is not enabled in the BIOS, because a dedicated video card is also installed. Some machines (like Dell Precision M4700) may not even provide a way to enable it in the BIOS (or at least I could not find it). What are the best practices to query useful information about such a feature ?