--- /dev/null
+--- 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;