From b9727870ae26eadbaa443828d856f33c79938579 Mon Sep 17 00:00:00 2001 From: leozhang Date: Mon, 12 Oct 2020 19:59:39 +0800 Subject: [PATCH] avfilter/vf_scale_cuda: unload cuModule on uninit Signed-off-by: leozhang Signed-off-by: Timo Rothenpieler --- libavfilter/vf_scale_cuda.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavfilter/vf_scale_cuda.c b/libavfilter/vf_scale_cuda.c index 1ffb73f831..9d59ed4863 100644 --- a/libavfilter/vf_scale_cuda.c +++ b/libavfilter/vf_scale_cuda.c @@ -120,6 +120,16 @@ static av_cold void cudascale_uninit(AVFilterContext *ctx) { CUDAScaleContext *s = ctx->priv; + if (s->hwctx && s->cu_module) { + CudaFunctions *cu = s->hwctx->internal->cuda_dl; + CUcontext dummy; + + CHECK_CU(cu->cuCtxPushCurrent(s->hwctx->cuda_ctx)); + CHECK_CU(cu->cuModuleUnload(s->cu_module)); + s->cu_module = NULL; + CHECK_CU(cu->cuCtxPopCurrent(&dummy)); + } + av_frame_free(&s->frame); av_buffer_unref(&s->frames_ctx); av_frame_free(&s->tmp_frame);