This class is the core of the NVENC encoder logic. It is embedded inside NVCodecEncoders using composition instead of inheritance because templates + inheritance was bit messy here where we need concrete types.