When using the sample encode example for the Media SDK, is there any method to restrict the number of cores of a system that the encoder runs on.
While looking at the documentation, I sawthemfxCoreParam structure which allows you to specify the maximum number of active threads that can be used.
However that seems to be used in case you define your own pipeline only ? and cannot be used with the mfxvideo.h interface ?
Also as an extension question when I run the encoder with -hw on a 2nd gen core i5 system. does it use both the CPUs and the hardware accelaration ? I ask this because, the system utilization increases for all cores.
mfxVideoParam.mfx.NumThread has been deprecated since MSDK 3.0 so now there is no control over number of threads/cores to be used by MSDK components.
As for hardware library, it does use CPU as some of its code runs on CPU. But the CPU load should not be significant. Overmore there is software fallback implemented for configurations unsupported by hardware platform - you can check if this is your case by inspecting the return code of Init functions of ENCODE and VPP - MFX_WRN_PARTIAL_ACCELERATION indicates software fallback.