[FFmpeg-cvslog] nvenc: make gpu indices independent of supported capabilities

Timo Rothenpieler git at videolan.org
Thu Sep 28 02:29:48 EEST 2017


ffmpeg | branch: master | Timo Rothenpieler <timo at rothenpieler.org> | Mon Feb  6 18:04:39 2017 -0800| [a52976c0feab6e86138983c248bd01fa45cdda69] | committer: Luca Barbato

nvenc: make gpu indices independent of supported capabilities

Do not allocate a CUDA context for every available gpu.

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=a52976c0feab6e86138983c248bd01fa45cdda69
---

 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:



More information about the ffmpeg-cvslog mailing list