aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimo Rothenpieler <timo@rothenpieler.org>2017-06-01 12:33:54 +0200
committerTimo Rothenpieler <timo@rothenpieler.org>2017-06-01 12:39:06 +0200
commitf890a6d71286cd4602a778fc551df0b4d87bc39e (patch)
treed5908d626574bbff552bd07d5f85c65313663ac0
parentcb3358b68fa750a4e0361b46e17d2d8560bb5265 (diff)
downloadffmpeg-f890a6d71286cd4602a778fc551df0b4d87bc39e.tar.gz
compat/cuda: make cuvidGetDecoderCaps optional
-rw-r--r--compat/cuda/dynlink_loader.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/compat/cuda/dynlink_loader.h b/compat/cuda/dynlink_loader.h
index 572cf8b907..7d2c87449e 100644
--- a/compat/cuda/dynlink_loader.h
+++ b/compat/cuda/dynlink_loader.h
@@ -76,6 +76,15 @@
av_log(NULL, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \
} while (0)
+#define LOAD_SYMBOL_OPT(fun, tp, symbol) \
+ do { \
+ if (!((f->fun) = (tp*)dlsym(f->lib, symbol))) { \
+ av_log(NULL, AV_LOG_DEBUG, "Cannot load optional %s\n", symbol); \
+ } else { \
+ av_log(NULL, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \
+ } \
+ } while (0)
+
#define GENERIC_LOAD_FUNC_PREAMBLE(T, n, N) \
T *f; \
int ret; \
@@ -205,7 +214,7 @@ static inline int cuvid_load_functions(CuvidFunctions **functions)
{
GENERIC_LOAD_FUNC_PREAMBLE(CuvidFunctions, cuvid, NVCUVID_LIBNAME);
- LOAD_SYMBOL(cuvidGetDecoderCaps, tcuvidGetDecoderCaps, "cuvidGetDecoderCaps");
+ LOAD_SYMBOL_OPT(cuvidGetDecoderCaps, tcuvidGetDecoderCaps, "cuvidGetDecoderCaps");
LOAD_SYMBOL(cuvidCreateDecoder, tcuvidCreateDecoder, "cuvidCreateDecoder");
LOAD_SYMBOL(cuvidDestroyDecoder, tcuvidDestroyDecoder, "cuvidDestroyDecoder");
LOAD_SYMBOL(cuvidDecodePicture, tcuvidDecodePicture, "cuvidDecodePicture");