following the samples at video-sdk-samples/Samples/NvCodec/NvEncoder at master · NVIDIA/video-sdk-samples · GitHub I put together the following code:
NV_ENCODE_API_FUNCTION_LIST encFuncList = { NV_ENCODE_API_FUNCTION_LIST_VER };
NvEncodeAPICreateInstance(&encFuncList);
CUcontext cuctx;
CUdevice dev;
cuDeviceGet(&dev, 0);
cuCtxCreate_v2(&cuctx, 0, dev);
//open session
NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS encodeSessionExParams = { NV_ENC_OPEN_ENCODE_SESSION_EX_PARAMS_VER };
encodeSessionExParams.device = cuctx;
encodeSessionExParams.deviceType = NV_ENC_DEVICE_TYPE_CUDA;
encodeSessionExParams.apiVersion = NVENCAPI_VERSION;
void* encoder = nullptr;
encFuncList.nvEncOpenEncodeSessionEx(&encodeSessionExParams, &encoder); // NvEncoder.cpp:84
Running this through valgrind gives me:
==33107== Conditional jump or move depends on uninitialised value(s)
==33107== at 0x9A4167E: ??? (in /usr/lib/x86_64-linux-gnu/libnvcuvid.so.555.42.06)
==33107== by 0x9A3DDB8: ??? (in /usr/lib/x86_64-linux-gnu/libnvcuvid.so.555.42.06)
==33107== by 0x9A9EF93: ??? (in /usr/lib/x86_64-linux-gnu/libnvcuvid.so.555.42.06)
==33107== by 0x6805DFE: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia-encode.so.555.42.06)
==33107== by 0x68219FA: ??? (in /usr/lib/x86_64-linux-gnu/libnvidia-encode.so.555.42.06)
==33107== by 0x19D371: NvEncoder::probeSupportedCodecs(DeviceInfoCuda&) (NvEncoder.cpp:84)
The offending line in my code being the function call to open the session. Since I followed the samples as far as I can see, what am I supposed to initialize??