diff options
author | Timo Rothenpieler <timo@rothenpieler.org> | 2023-03-10 13:09:10 +0100 |
---|---|---|
committer | Timo Rothenpieler <timo@rothenpieler.org> | 2023-03-10 13:17:21 +0100 |
commit | 7a8560cb22dd9f5c54df71af3fef26db9a2a28b0 (patch) | |
tree | c6b5587dce99453afeb4f7d4b1d5a762d7f195a7 /libavcodec | |
parent | fefcba1c1bc8f65464d2eec0ae75f9f511a003a5 (diff) | |
download | ffmpeg-7a8560cb22dd9f5c54df71af3fef26db9a2a28b0.tar.gz |
avcodec/nvenc: avoid failing b_ref_mode check when unset
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/nvenc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index a8b7a4c0a0..9acf3e8697 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -459,7 +459,7 @@ static int nvenc_check_cap(AVCodecContext *avctx, NV_ENC_CAPS cap) static int nvenc_check_capabilities(AVCodecContext *avctx) { NvencContext *ctx = avctx->priv_data; - int ret; + int tmp, ret; ret = nvenc_check_codec_support(avctx); if (ret < 0) { @@ -540,16 +540,18 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) } #ifdef NVENC_HAVE_BFRAME_REF_MODE + tmp = (ctx->b_ref_mode >= 0) ? ctx->b_ref_mode : NV_ENC_BFRAME_REF_MODE_DISABLED; ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_BFRAME_REF_MODE); - if (ctx->b_ref_mode == NV_ENC_BFRAME_REF_MODE_EACH && ret != 1 && ret != 3) { + if (tmp == NV_ENC_BFRAME_REF_MODE_EACH && ret != 1 && ret != 3) { av_log(avctx, AV_LOG_WARNING, "Each B frame as reference is not supported\n"); return AVERROR(ENOSYS); - } else if (ctx->b_ref_mode != NV_ENC_BFRAME_REF_MODE_DISABLED && ret == 0) { + } else if (tmp != NV_ENC_BFRAME_REF_MODE_DISABLED && ret == 0) { av_log(avctx, AV_LOG_WARNING, "B frames as references are not supported\n"); return AVERROR(ENOSYS); } #else - if (ctx->b_ref_mode != 0) { + tmp = (ctx->b_ref_mode >= 0) ? ctx->b_ref_mode : 0; + if (tmp > 0) { av_log(avctx, AV_LOG_WARNING, "B frames as references need SDK 8.1 at build time\n"); return AVERROR(ENOSYS); } |