diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2017-02-06 18:04:39 -0800 |
---|---|---|
committer | Luca Barbato <lu_zero@gentoo.org> | 2017-02-09 23:29:32 +0100 |
commit | a52976c0feab6e86138983c248bd01fa45cdda69 (patch) | |
tree | 9fed57bd647c435c3027f9300df4a8a46c5ecfe9 /libavcodec | |
parent | 77c23704c769168e4210956314775a1931f6aa0b (diff) | |
download | ffmpeg-streaming-a52976c0feab6e86138983c248bd01fa45cdda69.zip ffmpeg-streaming-a52976c0feab6e86138983c248bd01fa45cdda69.tar.gz |
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@gentoo.org>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/nvenc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index fe7b7f4..90b9d1a 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: |