From patchwork Fri Apr 16 11:53:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Martin Pulec X-Patchwork-Id: 26950 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 D2A5544890F for ; Fri, 16 Apr 2021 14:54:15 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BD09F68A5F8; Fri, 16 Apr 2021 14:54:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from office2.cesnet.cz (office2.cesnet.cz [195.113.144.244]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20E88689A91 for ; Fri, 16 Apr 2021 14:54:09 +0300 (EEST) Received: from minerva.fi.muni.cz (ip-86-49-61-229.net.upcbroadband.cz [86.49.61.229]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by office2.cesnet.cz (Postfix) with ESMTPSA id 52E4B40006C; Fri, 16 Apr 2021 13:54:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cesnet.cz; s=office2-2020; t=1618574048; bh=PokVdamH7l1JPFOsSv0XVOYNbX96160QksV4r4koExU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=bWhoAINsNvf2uJTA915xPoSNgMfDMRo6gpeXLp3WTRiVNSRRNR7ELFRvuJoC4p892 6ZuKCMjxvqRUoBhw/AVx900LpEeckP/RaFo7YFDMUJ2qf7dwNAQTlZdETNffj6Jv1k TGQgDIbLnPxBXXOmTO2rs6bCSEKhufwNRC1oo30kNSFf8iCTQvYMxMjihTFXX100FP Gy3UTFuO8TxT9ZCzf8QNfxtco2rSXhe/DeuwdwU7batBi0XbBzRkD1j+ifFLzdw7rB LkCikMX2ou+TbKmR8ZCd4gKCEgTZUhlhcHNNdi8aKCHQw6hhMggLu+Wg0AQymE4KxW DevUD8gHWHJtw== From: Martin Pulec To: ffmpeg-devel@ffmpeg.org Date: Fri, 16 Apr 2021 13:53:49 +0200 Message-Id: <20210416115349.102120-2-martin.pulec@cesnet.cz> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210416115349.102120-1-martin.pulec@cesnet.cz> References: <20210416115349.102120-1-martin.pulec@cesnet.cz> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/1] avcodec/nvenc: move lossless presets after new ones 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 Cc: Martin Pulec Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" A check in nvenc.c checks for NV_ENC_CAPS_SUPPORT_LOSSLESS_ENCODE if preset >= PRESET_LOSSLESS_DEFAULT which was true for the new presets. As a result, the use of new presets (P1-P7) fail if the card doesn't support lossless encoding. --- libavcodec/nvenc.h | 4 ++-- libavcodec/nvenc_h264.c | 2 +- libavcodec/nvenc_hevc.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/nvenc.h b/libavcodec/nvenc.h index fefc5f7f0b..fd69b7809f 100644 --- a/libavcodec/nvenc.h +++ b/libavcodec/nvenc.h @@ -103,8 +103,6 @@ enum { PRESET_LOW_LATENCY_DEFAULT , PRESET_LOW_LATENCY_HQ , PRESET_LOW_LATENCY_HP, - PRESET_LOSSLESS_DEFAULT, // lossless presets must be the last ones - PRESET_LOSSLESS_HP, #ifdef NVENC_HAVE_NEW_PRESETS PRESET_P1, PRESET_P2, @@ -114,6 +112,8 @@ enum { PRESET_P6, PRESET_P7, #endif + PRESET_LOSSLESS_DEFAULT, // lossless presets must be the last ones + PRESET_LOSSLESS_HP, }; enum { diff --git a/libavcodec/nvenc_h264.c b/libavcodec/nvenc_h264.c index 4c2585876e..113840a672 100644 --- a/libavcodec/nvenc_h264.c +++ b/libavcodec/nvenc_h264.c @@ -27,7 +27,7 @@ #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { #ifdef NVENC_HAVE_NEW_PRESETS - { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_P4 }, PRESET_DEFAULT, PRESET_P7, VE, "preset" }, + { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_P4 }, PRESET_DEFAULT, PRESET_LOSSLESS_HP, VE, "preset" }, #else { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_MEDIUM }, PRESET_DEFAULT, PRESET_LOSSLESS_HP, VE, "preset" }, #endif diff --git a/libavcodec/nvenc_hevc.c b/libavcodec/nvenc_hevc.c index 441e7871d2..46e4798a6f 100644 --- a/libavcodec/nvenc_hevc.c +++ b/libavcodec/nvenc_hevc.c @@ -27,7 +27,7 @@ #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM static const AVOption options[] = { #ifdef NVENC_HAVE_NEW_PRESETS - { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_P4 }, PRESET_DEFAULT, PRESET_P7, VE, "preset" }, + { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_P4 }, PRESET_DEFAULT, PRESET_LOSSLESS_HP, VE, "preset" }, #else { "preset", "Set the encoding preset", OFFSET(preset), AV_OPT_TYPE_INT, { .i64 = PRESET_MEDIUM }, PRESET_DEFAULT, PRESET_LOSSLESS_HP, VE, "preset" }, #endif