avutil/cuda_check: Fix non-dynamic-loader implementation
authorPhilip Langdale <philipl@overt.org>
Wed, 20 Feb 2019 03:12:19 +0000 (19:12 -0800)
committerPhilip Langdale <philipl@overt.org>
Sun, 24 Feb 2019 17:13:01 +0000 (09:13 -0800)
The function typedefs we were using are only present when using the
dynamic loader, which means compilation breaks for code directly
using the cuda SDK.

To fix this, let's just duplicate the function typedefs locally.
These are not going to change.

libavutil/cuda_check.h

index ec1705b..d02ea7e 100644 (file)
@@ -20,6 +20,9 @@
 #ifndef AVUTIL_CUDA_CHECK_H
 #define AVUTIL_CUDA_CHECK_H
 
+typedef CUresult CUDAAPI cuda_check_GetErrorName(CUresult error, const char** pstr);
+typedef CUresult CUDAAPI cuda_check_GetErrorString(CUresult error, const char** pstr);
+
 /**
  * Wrap a CUDA function call and print error information if it fails.
  */
@@ -35,8 +38,8 @@ static inline int ff_cuda_check(void *avctx,
     if (err == CUDA_SUCCESS)
         return 0;
 
-    ((tcuGetErrorName *)cuGetErrorName_fn)(err, &err_name);
-    ((tcuGetErrorString *)cuGetErrorString_fn)(err, &err_string);
+    ((cuda_check_GetErrorName *)cuGetErrorName_fn)(err, &err_name);
+    ((cuda_check_GetErrorString *)cuGetErrorString_fn)(err, &err_string);
 
     av_log(avctx, AV_LOG_ERROR, "%s failed", func);
     if (err_name && err_string)