Message ID | 20191027023054.71739-2-hydra3333@gmail.com |
---|---|
State | New |
Headers | show |
On 27.10.2019 03:30, hydra3333 wrote: > --- > libavcodec/nvenc.c | 40 +++++++++++++++++++++------------------- > 1 file changed, 21 insertions(+), 19 deletions(-) > > diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c > index bbb43ddad8..a18eb1df89 100644 > --- a/libavcodec/nvenc.c > +++ b/libavcodec/nvenc.c > @@ -321,39 +321,39 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > ret = nvenc_check_codec_support(avctx); > if (ret < 0) { > - av_log(avctx, AV_LOG_VERBOSE, "Codec not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "Codec not supported\n"); > return ret; > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_YUV444_ENCODE); > if (IS_YUV444(ctx->data_pix_fmt) && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "YUV444P not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "YUV444P not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE); > if (ctx->preset >= PRESET_LOSSLESS_DEFAULT && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "Lossless encoding not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "Lossless encoding not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_WIDTH_MAX); > if (ret < avctx->width) { > - av_log(avctx, AV_LOG_VERBOSE, "Width %d exceeds %d\n", > + av_log(avctx, AV_LOG_WARNING, "Width %d exceeds %d\n", > avctx->width, ret); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_HEIGHT_MAX); > if (ret < avctx->height) { > - av_log(avctx, AV_LOG_VERBOSE, "Height %d exceeds %d\n", > + av_log(avctx, AV_LOG_WARNING, "Height %d exceeds %d\n", > avctx->height, ret); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_NUM_MAX_BFRAMES); > if (ret < avctx->max_b_frames) { > - av_log(avctx, AV_LOG_VERBOSE, "Max B-frames %d exceed %d\n", > + av_log(avctx, AV_LOG_WARNING, "Max B-frames %d exceed %d\n", > avctx->max_b_frames, ret); > > return AVERROR(ENOSYS); > @@ -361,7 +361,7 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_FIELD_ENCODING); > if (ret < 1 && avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > - av_log(avctx, AV_LOG_VERBOSE, > + av_log(avctx, AV_LOG_WARNING, > "Interlaced encoding is not supported. Supported level: %d\n", > ret); > return AVERROR(ENOSYS); > @@ -369,46 +369,46 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_10BIT_ENCODE); > if (IS_10BIT(ctx->data_pix_fmt) && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "10 bit encode not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "10 bit encode not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOOKAHEAD); > if (ctx->rc_lookahead > 0 && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "RC lookahead not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "RC lookahead not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ); > if (ctx->temporal_aq > 0 && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "Temporal AQ not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "Temporal AQ not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION); > if (ctx->weighted_pred > 0 && ret <= 0) { > - av_log (avctx, AV_LOG_VERBOSE, "Weighted Prediction not supported\n"); > + av_log (avctx, AV_LOG_WARNING, "Weighted Prediction not supported\n"); > return AVERROR(ENOSYS); > } > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_CABAC); > if (ctx->coder == NV_ENC_H264_ENTROPY_CODING_MODE_CABAC && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "CABAC entropy coding not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "CABAC entropy coding not supported\n"); > return AVERROR(ENOSYS); > } > > #ifdef NVENC_HAVE_BFRAME_REF_MODE > 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) { > - av_log(avctx, AV_LOG_VERBOSE, "Each B frame as reference is not supported\n"); > + 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) { > - av_log(avctx, AV_LOG_VERBOSE, "B frames as references are not supported\n"); > + av_log(avctx, AV_LOG_WARNING, "B frames as references are not supported\n"); > return AVERROR(ENOSYS); > } > #else > if (ctx->b_ref_mode != 0) { > - av_log(avctx, AV_LOG_VERBOSE, "B frames as references need SDK 8.1 at build time\n"); > + av_log(avctx, AV_LOG_WARNING, "B frames as references need SDK 8.1 at build time\n"); > return AVERROR(ENOSYS); > } > #endif > @@ -416,12 +416,13 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > #ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES); > if(avctx->refs != NV_ENC_NUM_REF_FRAMES_AUTOSELECT && ret <= 0) { > - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames are not supported\n"); > + av_log(avctx, AV_LOG_WARNING, > + "Multiple reference frames are not supported by the device\n"); > return AVERROR(ENOSYS); > } > #else > if(avctx->refs != 0) { > - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames need SDK 9.1 at build time\n"); > + av_log(avctx, AV_LOG_WARNING, "Multiple reference frames need SDK 9.1 at build time\n"); > return AVERROR(ENOSYS); > } > #endif > @@ -458,7 +459,7 @@ static av_cold int nvenc_check_device(AVCodecContext *avctx, int idx) > > av_log(avctx, loglevel, "[ GPU #%d - < %s > has Compute SM %d.%d ]\n", idx, name, major, minor); > if (((major << 4) | minor) < NVENC_CAP) { > - av_log(avctx, loglevel, "does not support NVENC\n"); > + av_log(avctx, AV_LOG_WARNING, "does not support NVENC\n"); > goto fail; > } > > @@ -601,7 +602,8 @@ static av_cold int nvenc_setup_device(AVCodecContext *avctx) > return AVERROR_EXIT; > > if (!dl_fn->nvenc_device_count) { > - av_log(avctx, AV_LOG_FATAL, "No NVENC capable devices found\n"); > + av_log(avctx, AV_LOG_FATAL, > + "No NVENC capable devices found, or requested feature not supported by the device\n"); I'd just go with "No capable devices found" for the sake of it being shorter. > return AVERROR_EXTERNAL; > } Otherwise this looks fine, been meaning to do pretty much that for a while, but never got to it.
> -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Timo Rothenpieler > Sent: Monday, October 28, 2019 5:07 AM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH 1/1] Slightly update nvenc error messages and warnings > > On 27.10.2019 03:30, hydra3333 wrote: > > --- > > libavcodec/nvenc.c | 40 +++++++++++++++++++++------------------- > > 1 file changed, 21 insertions(+), 19 deletions(-) > > > > diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c > > index bbb43ddad8..a18eb1df89 100644 > > --- a/libavcodec/nvenc.c > > +++ b/libavcodec/nvenc.c > > @@ -321,39 +321,39 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > > > ret = nvenc_check_codec_support(avctx); > > if (ret < 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "Codec not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "Codec not supported\n"); > > return ret; > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_YUV444_ENCODE); > > if (IS_YUV444(ctx->data_pix_fmt) && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "YUV444P not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "YUV444P not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE); > > if (ctx->preset >= PRESET_LOSSLESS_DEFAULT && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "Lossless encoding not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "Lossless encoding not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_WIDTH_MAX); > > if (ret < avctx->width) { > > - av_log(avctx, AV_LOG_VERBOSE, "Width %d exceeds %d\n", > > + av_log(avctx, AV_LOG_WARNING, "Width %d exceeds %d\n", > > avctx->width, ret); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_HEIGHT_MAX); > > if (ret < avctx->height) { > > - av_log(avctx, AV_LOG_VERBOSE, "Height %d exceeds %d\n", > > + av_log(avctx, AV_LOG_WARNING, "Height %d exceeds %d\n", > > avctx->height, ret); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_NUM_MAX_BFRAMES); > > if (ret < avctx->max_b_frames) { > > - av_log(avctx, AV_LOG_VERBOSE, "Max B-frames %d exceed %d\n", > > + av_log(avctx, AV_LOG_WARNING, "Max B-frames %d exceed %d\n", > > avctx->max_b_frames, ret); > > > > return AVERROR(ENOSYS); > > @@ -361,7 +361,7 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_FIELD_ENCODING); > > if (ret < 1 && avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { > > - av_log(avctx, AV_LOG_VERBOSE, > > + av_log(avctx, AV_LOG_WARNING, > > "Interlaced encoding is not supported. Supported level: %d\n", > > ret); > > return AVERROR(ENOSYS); > > @@ -369,46 +369,46 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_10BIT_ENCODE); > > if (IS_10BIT(ctx->data_pix_fmt) && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "10 bit encode not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "10 bit encode not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOOKAHEAD); > > if (ctx->rc_lookahead > 0 && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "RC lookahead not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "RC lookahead not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ); > > if (ctx->temporal_aq > 0 && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "Temporal AQ not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "Temporal AQ not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION); > > if (ctx->weighted_pred > 0 && ret <= 0) { > > - av_log (avctx, AV_LOG_VERBOSE, "Weighted Prediction not supported\n"); > > + av_log (avctx, AV_LOG_WARNING, "Weighted Prediction not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_CABAC); > > if (ctx->coder == NV_ENC_H264_ENTROPY_CODING_MODE_CABAC && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "CABAC entropy coding not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "CABAC entropy coding not supported\n"); > > return AVERROR(ENOSYS); > > } > > > > #ifdef NVENC_HAVE_BFRAME_REF_MODE > > 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) { > > - av_log(avctx, AV_LOG_VERBOSE, "Each B frame as reference is not supported\n"); > > + 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) { > > - av_log(avctx, AV_LOG_VERBOSE, "B frames as references are not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, "B frames as references are not supported\n"); > > return AVERROR(ENOSYS); > > } > > #else > > if (ctx->b_ref_mode != 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "B frames as references need SDK 8.1 at build time\n"); > > + av_log(avctx, AV_LOG_WARNING, "B frames as references need SDK 8.1 at build time\n"); > > return AVERROR(ENOSYS); > > } > > #endif > > @@ -416,12 +416,13 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) > > #ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES > > ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES); > > if(avctx->refs != NV_ENC_NUM_REF_FRAMES_AUTOSELECT && ret <= 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames are not supported\n"); > > + av_log(avctx, AV_LOG_WARNING, > > + "Multiple reference frames are not supported by the device\n"); > > return AVERROR(ENOSYS); > > } > > #else > > if(avctx->refs != 0) { > > - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames need SDK 9.1 at build time\n"); > > + av_log(avctx, AV_LOG_WARNING, "Multiple reference frames need SDK 9.1 at build time\n"); > > return AVERROR(ENOSYS); > > } > > #endif > > @@ -458,7 +459,7 @@ static av_cold int nvenc_check_device(AVCodecContext *avctx, int idx) > > > > av_log(avctx, loglevel, "[ GPU #%d - < %s > has Compute SM %d.%d ]\n", idx, name, major, minor); > > if (((major << 4) | minor) < NVENC_CAP) { > > - av_log(avctx, loglevel, "does not support NVENC\n"); > > + av_log(avctx, AV_LOG_WARNING, "does not support NVENC\n"); > > goto fail; > > } > > > > @@ -601,7 +602,8 @@ static av_cold int nvenc_setup_device(AVCodecContext *avctx) > > return AVERROR_EXIT; > > > > if (!dl_fn->nvenc_device_count) { > > - av_log(avctx, AV_LOG_FATAL, "No NVENC capable devices found\n"); > > + av_log(avctx, AV_LOG_FATAL, > > + "No NVENC capable devices found, or requested feature not supported by the device\n"); > > I'd just go with "No capable devices found" for the sake of it being > shorter. > > > return AVERROR_EXTERNAL; > > } > > Otherwise this looks fine, been meaning to do pretty much that for a > while, but never got to it. Good oh. Thank you. "No capable devices found" is briefer, I wonder whether it works for a confused user like me :) I suppose it would, given it would be in combination the other message expanded as "Multiple reference frames are not supported by the device". On that note, I suppose some or most of the other messages could also have "by the device" added for clarity ? Should I submit an updated patch or I guess leave it in your capable hands ?
> Good oh. Thank you. > > "No capable devices found" is briefer, I wonder whether it works for a confused user like me :) > I suppose it would, given it would be in combination the other message expanded as > "Multiple reference frames are not supported by the device". > > On that note, I suppose some or most of the other messages could also have > "by the device" added for clarity ? > > Should I submit an updated patch or I guess leave it in your capable hands ? > applied with minor amendments
diff --git a/libavcodec/nvenc.c b/libavcodec/nvenc.c index bbb43ddad8..a18eb1df89 100644 --- a/libavcodec/nvenc.c +++ b/libavcodec/nvenc.c @@ -321,39 +321,39 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) ret = nvenc_check_codec_support(avctx); if (ret < 0) { - av_log(avctx, AV_LOG_VERBOSE, "Codec not supported\n"); + av_log(avctx, AV_LOG_WARNING, "Codec not supported\n"); return ret; } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_YUV444_ENCODE); if (IS_YUV444(ctx->data_pix_fmt) && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "YUV444P not supported\n"); + av_log(avctx, AV_LOG_WARNING, "YUV444P not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE); if (ctx->preset >= PRESET_LOSSLESS_DEFAULT && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "Lossless encoding not supported\n"); + av_log(avctx, AV_LOG_WARNING, "Lossless encoding not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_WIDTH_MAX); if (ret < avctx->width) { - av_log(avctx, AV_LOG_VERBOSE, "Width %d exceeds %d\n", + av_log(avctx, AV_LOG_WARNING, "Width %d exceeds %d\n", avctx->width, ret); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_HEIGHT_MAX); if (ret < avctx->height) { - av_log(avctx, AV_LOG_VERBOSE, "Height %d exceeds %d\n", + av_log(avctx, AV_LOG_WARNING, "Height %d exceeds %d\n", avctx->height, ret); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_NUM_MAX_BFRAMES); if (ret < avctx->max_b_frames) { - av_log(avctx, AV_LOG_VERBOSE, "Max B-frames %d exceed %d\n", + av_log(avctx, AV_LOG_WARNING, "Max B-frames %d exceed %d\n", avctx->max_b_frames, ret); return AVERROR(ENOSYS); @@ -361,7 +361,7 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_FIELD_ENCODING); if (ret < 1 && avctx->flags & AV_CODEC_FLAG_INTERLACED_DCT) { - av_log(avctx, AV_LOG_VERBOSE, + av_log(avctx, AV_LOG_WARNING, "Interlaced encoding is not supported. Supported level: %d\n", ret); return AVERROR(ENOSYS); @@ -369,46 +369,46 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_10BIT_ENCODE); if (IS_10BIT(ctx->data_pix_fmt) && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "10 bit encode not supported\n"); + av_log(avctx, AV_LOG_WARNING, "10 bit encode not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_LOOKAHEAD); if (ctx->rc_lookahead > 0 && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "RC lookahead not supported\n"); + av_log(avctx, AV_LOG_WARNING, "RC lookahead not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_TEMPORAL_AQ); if (ctx->temporal_aq > 0 && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "Temporal AQ not supported\n"); + av_log(avctx, AV_LOG_WARNING, "Temporal AQ not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_WEIGHTED_PREDICTION); if (ctx->weighted_pred > 0 && ret <= 0) { - av_log (avctx, AV_LOG_VERBOSE, "Weighted Prediction not supported\n"); + av_log (avctx, AV_LOG_WARNING, "Weighted Prediction not supported\n"); return AVERROR(ENOSYS); } ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_CABAC); if (ctx->coder == NV_ENC_H264_ENTROPY_CODING_MODE_CABAC && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "CABAC entropy coding not supported\n"); + av_log(avctx, AV_LOG_WARNING, "CABAC entropy coding not supported\n"); return AVERROR(ENOSYS); } #ifdef NVENC_HAVE_BFRAME_REF_MODE 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) { - av_log(avctx, AV_LOG_VERBOSE, "Each B frame as reference is not supported\n"); + 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) { - av_log(avctx, AV_LOG_VERBOSE, "B frames as references are not supported\n"); + av_log(avctx, AV_LOG_WARNING, "B frames as references are not supported\n"); return AVERROR(ENOSYS); } #else if (ctx->b_ref_mode != 0) { - av_log(avctx, AV_LOG_VERBOSE, "B frames as references need SDK 8.1 at build time\n"); + av_log(avctx, AV_LOG_WARNING, "B frames as references need SDK 8.1 at build time\n"); return AVERROR(ENOSYS); } #endif @@ -416,12 +416,13 @@ static int nvenc_check_capabilities(AVCodecContext *avctx) #ifdef NVENC_HAVE_MULTIPLE_REF_FRAMES ret = nvenc_check_cap(avctx, NV_ENC_CAPS_SUPPORT_MULTIPLE_REF_FRAMES); if(avctx->refs != NV_ENC_NUM_REF_FRAMES_AUTOSELECT && ret <= 0) { - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames are not supported\n"); + av_log(avctx, AV_LOG_WARNING, + "Multiple reference frames are not supported by the device\n"); return AVERROR(ENOSYS); } #else if(avctx->refs != 0) { - av_log(avctx, AV_LOG_VERBOSE, "Multiple reference frames need SDK 9.1 at build time\n"); + av_log(avctx, AV_LOG_WARNING, "Multiple reference frames need SDK 9.1 at build time\n"); return AVERROR(ENOSYS); } #endif @@ -458,7 +459,7 @@ static av_cold int nvenc_check_device(AVCodecContext *avctx, int idx) av_log(avctx, loglevel, "[ GPU #%d - < %s > has Compute SM %d.%d ]\n", idx, name, major, minor); if (((major << 4) | minor) < NVENC_CAP) { - av_log(avctx, loglevel, "does not support NVENC\n"); + av_log(avctx, AV_LOG_WARNING, "does not support NVENC\n"); goto fail; } @@ -601,7 +602,8 @@ static av_cold int nvenc_setup_device(AVCodecContext *avctx) return AVERROR_EXIT; if (!dl_fn->nvenc_device_count) { - av_log(avctx, AV_LOG_FATAL, "No NVENC capable devices found\n"); + av_log(avctx, AV_LOG_FATAL, + "No NVENC capable devices found, or requested feature not supported by the device\n"); return AVERROR_EXTERNAL; }