[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