Duplicate but different API between Cuda Toolkit 9.2 and Video Codec SDK 8.1?

I’m on Ubuntu 16.04, Cuda Toolkit 9.2, Video Codec SDK 8.1 and using nvidia-396 drivers. I’m attempting to decode a h264 video stream. I’m getting close but I see there are duplicate API header files in the Cuda Toolkit and Video Codec SDK. The files I’m talking about are…
nvcuvid.h && cuviddec.h which come with the Video Codec SDK
dynlink_nvcuvid.h && dynlink_cuviddec.h which come with the Cuda Toolkit 9.2

If you do a beyond compare they have slightly different APIs. I can’t seem to get the dynlink version of the API to work due to the fact that all the functions are typedef. Looking at the Video Codec SDK 8.1 readme it says that the Cuda Toolkit is required. I’m would like to know Nvidia’s intentions here. When it comes down to it the Video Codec SDK is just these two header files and the lib that comes with the Nvidia driver. The rest of the SDK is just documentation and samples. I’m guessing Nvidia’s intentions are to include all the API needed to access NVDEC and NVENC in the Cuda Toolkit. Is this true? Has anyone been able to get this working?