From patchwork Sun Oct 27 02:30:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: hydra3333@gmail.com X-Patchwork-Id: 15983 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9272B447EF7 for ; Sun, 27 Oct 2019 04:58:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 73AF768AE70; Sun, 27 Oct 2019 04:58:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3702C68A867 for ; Sun, 27 Oct 2019 04:58:46 +0200 (EET) Received: by mail-pg1-f196.google.com with SMTP id l3so4191784pgr.8 for ; Sat, 26 Oct 2019 19:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7jVA4ekoXkbRu/jokR91o1IjSPGslP78cFt2eNwLJdA=; b=BZvIZjaaM7LViHYbv6ln5JqZFGC+x7I+Sbj8v0hUlx5GTjiNU/hhdkTXzJh37ISgvY U0O7YN6p1XUm7clGk+wLG7DEl6f3tUBq3ZKxKsf+UuTeoX1YlqLn995ORw6HYccB9+Kp k8q6En0tC52Hhtjpf8oUvncUXS0n12eqgUEwe8DaAfoswrCG0bTZyItRfA+5Lm9drMrq vU6q7EOXRH1RcN0zvUpE9jxIlA/nCg1kUnvZM6ywWUlTpz+lGoCo9WajUF4OYlccxL9b XLopY1JWzF46CuGzYOxTc5ZMxbOnenD84WdDVHbWQUEQ9+qBNHPYRRYJifK3+Nvp5aQv 7nuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7jVA4ekoXkbRu/jokR91o1IjSPGslP78cFt2eNwLJdA=; b=XdccpNSKjaGGFXANuiT+heS4rdSVJ9dJYHIUTgWeH+JW9uxq6RWL/vUFasI58gdQLg kPhRtyxVyBT0xf3NLiz3PjpdIvwTsAf2klpGXOCI+FKWc5DK8DUHN3V9ry5UrptX1RUR pM8cHT9s16bzMNzufWPRe3V11xiJ1LvlL3MgeFx+2+f8hyOKy9A/z2a+x6Fo2/QROD/B NUPZijIETcHY0oXMJClFGnPknxwlKETMhmMJchGrPAFZo/2rlfAhBlLP1wH1T+I5Rm4F D5Ar1/AthKUnM0gsUCHzEr/bje9RDEPdIy+8OpNALauztuO//QON1zbi0D6ZHvcdhl1C bmMw== X-Gm-Message-State: APjAAAUc2afz0mfmbrn/8r4O/xGDlfk0ZMhF6OR3ODqprWWuhmeNo17q rb2m5NS6SQZxVFfbSM0x0uRJ85qW X-Google-Smtp-Source: APXvYqzHa3gBUJQoaBh34Aih0P+LKl9os5ZXcqRUJxIp+1U/y7V/dA9GQZccdioQXDI7pfcVMJGaCg== X-Received: by 2002:a17:90a:6584:: with SMTP id k4mr14513963pjj.43.1572143464987; Sat, 26 Oct 2019 19:31:04 -0700 (PDT) Received: from ubuntu.localdomain ([58.174.88.239]) by smtp.gmail.com with ESMTPSA id d127sm1028392pfc.28.2019.10.26.19.31.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 26 Oct 2019 19:31:04 -0700 (PDT) From: hydra3333 To: ffmpeg-devel@ffmpeg.org Date: Sat, 26 Oct 2019 19:30:54 -0700 Message-Id: <20191027023054.71739-2-hydra3333@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191027023054.71739-1-hydra3333@gmail.com> References: <20191027023054.71739-1-hydra3333@gmail.com> Subject: [FFmpeg-devel] [PATCH 1/1] Slightly update nvenc error messages and warnings X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- 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"); return AVERROR_EXTERNAL; }