Commit 1dc483a6 authored by Mark Thompson's avatar Mark Thompson

compat/cuda: Pass a logging context to load functions

Reviewed-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
parent f7d77b41
...@@ -59,29 +59,29 @@ ...@@ -59,29 +59,29 @@
#define LOAD_LIBRARY(l, path) \ #define LOAD_LIBRARY(l, path) \
do { \ do { \
if (!((l) = dlopen(path, RTLD_LAZY))) { \ if (!((l) = dlopen(path, RTLD_LAZY))) { \
av_log(NULL, AV_LOG_ERROR, "Cannot load %s\n", path); \ av_log(logctx, AV_LOG_ERROR, "Cannot load %s\n", path); \
ret = AVERROR_UNKNOWN; \ ret = AVERROR_UNKNOWN; \
goto error; \ goto error; \
} \ } \
av_log(NULL, AV_LOG_TRACE, "Loaded lib: %s\n", path); \ av_log(logctx, AV_LOG_TRACE, "Loaded lib: %s\n", path); \
} while (0) } while (0)
#define LOAD_SYMBOL(fun, tp, symbol) \ #define LOAD_SYMBOL(fun, tp, symbol) \
do { \ do { \
if (!((f->fun) = (tp*)dlsym(f->lib, symbol))) { \ if (!((f->fun) = (tp*)dlsym(f->lib, symbol))) { \
av_log(NULL, AV_LOG_ERROR, "Cannot load %s\n", symbol); \ av_log(logctx, AV_LOG_ERROR, "Cannot load %s\n", symbol); \
ret = AVERROR_UNKNOWN; \ ret = AVERROR_UNKNOWN; \
goto error; \ goto error; \
} \ } \
av_log(NULL, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \ av_log(logctx, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \
} while (0) } while (0)
#define LOAD_SYMBOL_OPT(fun, tp, symbol) \ #define LOAD_SYMBOL_OPT(fun, tp, symbol) \
do { \ do { \
if (!((f->fun) = (tp*)dlsym(f->lib, symbol))) { \ if (!((f->fun) = (tp*)dlsym(f->lib, symbol))) { \
av_log(NULL, AV_LOG_DEBUG, "Cannot load optional %s\n", symbol); \ av_log(logctx, AV_LOG_DEBUG, "Cannot load optional %s\n", symbol); \
} else { \ } else { \
av_log(NULL, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \ av_log(logctx, AV_LOG_TRACE, "Loaded sym: %s\n", symbol); \
} \ } \
} while (0) } while (0)
...@@ -187,7 +187,7 @@ static inline void nvenc_free_functions(NvencFunctions **functions) ...@@ -187,7 +187,7 @@ static inline void nvenc_free_functions(NvencFunctions **functions)
} }
#ifdef AV_COMPAT_DYNLINK_CUDA_H #ifdef AV_COMPAT_DYNLINK_CUDA_H
static inline int cuda_load_functions(CudaFunctions **functions) static inline int cuda_load_functions(CudaFunctions **functions, void *logctx)
{ {
GENERIC_LOAD_FUNC_PREAMBLE(CudaFunctions, cuda, CUDA_LIBNAME); GENERIC_LOAD_FUNC_PREAMBLE(CudaFunctions, cuda, CUDA_LIBNAME);
...@@ -210,7 +210,7 @@ static inline int cuda_load_functions(CudaFunctions **functions) ...@@ -210,7 +210,7 @@ static inline int cuda_load_functions(CudaFunctions **functions)
} }
#endif #endif
static inline int cuvid_load_functions(CuvidFunctions **functions) static inline int cuvid_load_functions(CuvidFunctions **functions, void *logctx)
{ {
GENERIC_LOAD_FUNC_PREAMBLE(CuvidFunctions, cuvid, NVCUVID_LIBNAME); GENERIC_LOAD_FUNC_PREAMBLE(CuvidFunctions, cuvid, NVCUVID_LIBNAME);
...@@ -244,7 +244,7 @@ static inline int cuvid_load_functions(CuvidFunctions **functions) ...@@ -244,7 +244,7 @@ static inline int cuvid_load_functions(CuvidFunctions **functions)
GENERIC_LOAD_FUNC_FINALE(cuvid); GENERIC_LOAD_FUNC_FINALE(cuvid);
} }
static inline int nvenc_load_functions(NvencFunctions **functions) static inline int nvenc_load_functions(NvencFunctions **functions, void *logctx)
{ {
GENERIC_LOAD_FUNC_PREAMBLE(NvencFunctions, nvenc, NVENC_LIBNAME); GENERIC_LOAD_FUNC_PREAMBLE(NvencFunctions, nvenc, NVENC_LIBNAME);
......
...@@ -835,7 +835,7 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx) ...@@ -835,7 +835,7 @@ static av_cold int cuvid_decode_init(AVCodecContext *avctx)
goto error; goto error;
} }
ret = cuvid_load_functions(&ctx->cvdl); ret = cuvid_load_functions(&ctx->cvdl, avctx);
if (ret < 0) { if (ret < 0) {
av_log(avctx, AV_LOG_ERROR, "Failed loading nvcuvid.\n"); av_log(avctx, AV_LOG_ERROR, "Failed loading nvcuvid.\n");
goto error; goto error;
......
...@@ -176,7 +176,7 @@ static int nvdec_decoder_create(AVBufferRef **out, AVBufferRef *hw_device_ref, ...@@ -176,7 +176,7 @@ static int nvdec_decoder_create(AVBufferRef **out, AVBufferRef *hw_device_ref,
decoder->cuda_ctx = device_hwctx->cuda_ctx; decoder->cuda_ctx = device_hwctx->cuda_ctx;
decoder->cudl = device_hwctx->internal->cuda_dl; decoder->cudl = device_hwctx->internal->cuda_dl;
ret = cuvid_load_functions(&decoder->cvdl); ret = cuvid_load_functions(&decoder->cvdl, logctx);
if (ret < 0) { if (ret < 0) {
av_log(logctx, AV_LOG_ERROR, "Failed loading nvcuvid.\n"); av_log(logctx, AV_LOG_ERROR, "Failed loading nvcuvid.\n");
goto fail; goto fail;
......
...@@ -133,11 +133,11 @@ static av_cold int nvenc_load_libraries(AVCodecContext *avctx) ...@@ -133,11 +133,11 @@ static av_cold int nvenc_load_libraries(AVCodecContext *avctx)
uint32_t nvenc_max_ver; uint32_t nvenc_max_ver;
int ret; int ret;
ret = cuda_load_functions(&dl_fn->cuda_dl); ret = cuda_load_functions(&dl_fn->cuda_dl, avctx);
if (ret < 0) if (ret < 0)
return ret; return ret;
ret = nvenc_load_functions(&dl_fn->nvenc_dl); ret = nvenc_load_functions(&dl_fn->nvenc_dl, avctx);
if (ret < 0) { if (ret < 0) {
nvenc_print_driver_requirement(avctx, AV_LOG_ERROR); nvenc_print_driver_requirement(avctx, AV_LOG_ERROR);
return ret; return ret;
......
...@@ -336,7 +336,7 @@ static int cuda_device_init(AVHWDeviceContext *ctx) ...@@ -336,7 +336,7 @@ static int cuda_device_init(AVHWDeviceContext *ctx)
} }
if (!hwctx->internal->cuda_dl) { if (!hwctx->internal->cuda_dl) {
ret = cuda_load_functions(&hwctx->internal->cuda_dl); ret = cuda_load_functions(&hwctx->internal->cuda_dl, ctx);
if (ret < 0) { if (ret < 0) {
av_log(ctx, AV_LOG_ERROR, "Could not dynamically load CUDA\n"); av_log(ctx, AV_LOG_ERROR, "Could not dynamically load CUDA\n");
goto error; goto error;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment