--- a/libavutil/hwcontext_cuda.c 2019-12-03 10:04:24.521156775 -0700 +++ b/libavutil/hwcontext_cuda.c 2019-12-03 10:59:03.924121027 -0700 @@ -282,9 +282,11 @@ CudaFunctions *cu = hwctx->internal->cuda_dl; if (hwctx->internal->is_allocated && hwctx->cuda_ctx) { +#ifdef CUDA_PRIMARY_CTX if (hwctx->internal->flags & AV_CUDA_USE_PRIMARY_CONTEXT) CHECK_CU(cu->cuDevicePrimaryCtxRelease(hwctx->internal->cuda_device)); else +#endif CHECK_CU(cu->cuCtxDestroy(hwctx->cuda_ctx)); hwctx->cuda_ctx = NULL; @@ -351,7 +353,7 @@ goto error; hwctx->internal->flags = flags; - +#ifdef CUDA_PRIMARY_CTX if (flags & AV_CUDA_USE_PRIMARY_CONTEXT) { ret = CHECK_CU(cu->cuDevicePrimaryCtxGetState(hwctx->internal->cuda_device, &dev_flags, &dev_active)); if (ret < 0) @@ -369,7 +371,10 @@ ret = CHECK_CU(cu->cuDevicePrimaryCtxRetain(&hwctx->cuda_ctx, hwctx->internal->cuda_device)); if (ret < 0) goto error; - } else { + } + else +#endif + { ret = CHECK_CU(cu->cuCtxCreate(&hwctx->cuda_ctx, desired_flags, hwctx->internal->cuda_device)); if (ret < 0) goto error;