From a52976c0feab6e86138983c248bd01fa45cdda69 Mon Sep 17 00:00:00 2001 From: Timo Rothenpieler Date: Mon, 6 Feb 2017 18:04:39 -0800 Subject: [PATCH] nvenc: make gpu indices independent of supported capabilities Do not allocate a CUDA context for every available gpu. Signed-off-by: Luca Barbato --- libavcodec/nvenc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index fe7b7f40f0..90b9d1a62a 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -359,6 +359,9 @@ static int nvenc_check_device(AVCodecContext *avctx, int idx) if (((major << 4) | minor) < NVENC_CAP) goto fail; + if (ctx->device != idx && ctx->device != ANY_DEVICE) + return -1; + ret = nvel->cu_ctx_create(&ctx->cu_context_internal, 0, cu_device); if (ret != CUDA_SUCCESS) goto fail; @@ -377,7 +380,7 @@ static int nvenc_check_device(AVCodecContext *avctx, int idx) av_log(avctx, loglevel, "supports NVENC\n"); - if (ctx->device == cu_device || ctx->device == ANY_DEVICE) + if (ctx->device == idx || ctx->device == ANY_DEVICE) return 0; fail3: