From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id E3A674C132 for ; Wed, 8 Oct 2025 03:48:05 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'xQ0nAlxi5A0ryTbljORH1jh+AJlpQsNOvSCKSA64uYE=', expected b'ImQxfgYTrgCdLuuj1r8Bbfo8GMxHKrFQWVTIeCww7lk=')) header.d=ffmpeg.org header.i=@ffmpeg.org header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1759895253; h=mime-version : to : date : message-id : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=xQ0nAlxi5A0ryTbljORH1jh+AJlpQsNOvSCKSA64uYE=; b=sTQ+omMHXVDoawX/O1Z83nzxp+YCpqCUmCCFxWDqAawAxpPY+V4keO7AFyAkOhccEXkOC 8iJSEwDv5M5w85NW5wipHocOmNe0KiTVhs52PhYN6KBUm+Ci92C6x+ETw0IPIP58qCNkkEK ymg9eFyKZVqzBfR7R4ebMoo3udu9fcgN/dy95TczlGdFRTBxBAJnublajvJXumezQrzOZMw hMlB3s23EqpWLtjtTIZ802VZwQ6aUOd7e5Kqp4diJBOsOT/L/6X9Ury9kL81oE66gVTKG1T ebHdfq6cYDszmt8xFuifjDj9tG6qg6nV9h+uLmGgIoTVpExpoOeoLhp6DCcg== Received: from [172.18.0.2] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 1DC3E68F0E3; Wed, 8 Oct 2025 06:47:33 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1759895231; b=ivC4VnqXeJ/J6gzHH7EM4UcMoLot5Xj5EWmxuxhX62/HXhIAnwH9Bs5wOBYUMMbErhq8/ COuy4dXaDpxLN2/5TnVhZCh9G7/1MjmubvGp4XsSY0WG+a7hh9S7EihXSYIk5QtOL4uN3Ud Co6eKfSodsdq5mTuhhb9EA9d5He4gIY7zZoVTUUm/I6NXYYQxlOsBsfd6pEUFvkNc2x6pwd 97MB4t+JTJZumaqOEf0rFkXNNGdQYCQN/Lsn+eDhXa99XoG5F+QsM6Qj55isTF/0vxRXIKX c8F++r5GBwxp5dmZERBjRqsi+RTsgf4e1RS0Wdr4Op34Maqg+HW0fugywPNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1759895231; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=NtChEHG0+p1dO7UEzD2CZXJrz6K9WVKz2Dd1r21kQXg=; b=lcKHbNC4O6WCxJ4Bb0MVG34wy1wueVTu9xDNOXHSK0YEcEwJSMkiWlPEhmlaJWcMlRD1B kqv2UEs1+J3XQq1oEdCwrTL4SxaPonYLMvpn/MLZCsvGJgXWa4R8SH8MybjIzFc0d0SC1tc OCC0sO5/ksGg32HYNmmJeMDDqbijNGJcwlbOa8SxYBSxn9X6zrRKXPeWV0ZMGxvf4AnCIbk 6crSuCHhRuu+e5g+wROCUGhJ0KrFDTyBF9WSKXRDbD9BwxH+GGaKi7dYlx41cJHqGoiQs4J Krb1KeZOqfzSz2izlt5EqWPKD5S4pRwEEK1Rtjfu2s8w6sgOn4jZClBVpe3Q== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none; dmarc=pass header.from=ffmpeg.org policy.dmarc=quarantine Authentication-Results: ffmpeg.org; dkim=pass header.d=ffmpeg.org header.i=@ffmpeg.org; arc=none (Message is not ARC signed); dmarc=pass (Used From Domain Record) header.from=ffmpeg.org policy.dmarc=quarantine DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1759895220; h=content-type : mime-version : content-transfer-encoding : from : to : reply-to : subject : date : from; bh=ImQxfgYTrgCdLuuj1r8Bbfo8GMxHKrFQWVTIeCww7lk=; b=wTFgeUNMD+SaZ3LMDoiNYzVSubUqmCVOBgp27ihrvVd7LrMbu+u9GkCQvaTH+MeUPMCT3 w9KMcgWN3PaLr6pyDWjbVz3xw+q2wljIhfNqbmGo45AYxEzAdo2Hu8hLqnw9LFCVmm7Qmv+ s5OkLpaHJrg5VUtcSGusMumZiiVhKp+Tsxfv2cMK2G7LVHLo3SELA/R+x6ntmp3ge5O5q0K BwRhao4opU6rKZiyRVHBgB8isCI86hH0vuHOvAaM2fm50cvqGWDvrsp+RVnxqKBEbtT1XFu rBYs/fM0adc5KLYEbq1y5RmQJozWTBZlSIfd118BTEaJYUebeNS8tkqewfFw== Received: from be50bb5a3685 (code.ffmpeg.org [188.245.149.3]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 16E7A68F06D for ; Wed, 8 Oct 2025 06:47:00 +0300 (EEST) MIME-Version: 1.0 To: ffmpeg-devel@ffmpeg.org Date: Wed, 08 Oct 2025 03:46:59 -0000 Message-ID: <175989522022.65.2448921515826896793@bf249f23a2c8> Message-ID-Hash: 65IPHE54353XGIQQYDMDGE2NTNB3QQHS X-Message-ID-Hash: 65IPHE54353XGIQQYDMDGE2NTNB3QQHS X-MailFrom: code@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] avcodec/d3d12va_encode: use macros to set QP range and max frame size (PR #20666) List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Tong Wu via ffmpeg-devel Cc: Tong Wu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: PR #20666 opened by Tong Wu (tong1wu) URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20666 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/20666.patch Signed-off-by: Tong Wu >>From 11d06cb4927455bdd4478014f8b9b64a8724b44a Mon Sep 17 00:00:00 2001 From: Tong Wu Date: Wed, 8 Oct 2025 11:41:56 +0800 Subject: [PATCH] avcodec/d3d12va_encode: use macros to set QP range and max frame size Signed-off-by: Tong Wu --- libavcodec/d3d12va_encode.c | 51 +++++++++++++++---------------------- 1 file changed, 21 insertions(+), 30 deletions(-) diff --git a/libavcodec/d3d12va_encode.c b/libavcodec/d3d12va_encode.c index f34605ec41..4a8672a359 100644 --- a/libavcodec/d3d12va_encode.c +++ b/libavcodec/d3d12va_encode.c @@ -853,6 +853,21 @@ static int d3d12va_encode_init_rate_control(AVCodecContext *avctx) int fr_num, fr_den; const D3D12VAEncodeRCMode *rc_mode; +#define SET_QP_RANGE(ctl) do { \ + if (avctx->qmin > 0 || avctx->qmax > 0) { \ + ctl->MinQP = avctx->qmin; \ + ctl->MaxQP = avctx->qmax; \ + ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE; \ + } \ + } while(0) + +#define SET_MAX_FRAME_SIZE(ctl) do { \ + if (ctx->max_frame_size > 0) { \ + ctl->MaxFrameBitSize = ctx->max_frame_size * 8; \ + ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE; \ + } \ + } while(0) + // Rate control mode selection: // * If the user has set a mode explicitly with the rc_mode option, // use it and fail if it is not available. @@ -1053,16 +1068,8 @@ rc_mode_found: cbr_ctl->InitialVBVFullness = hrd_initial_buffer_fullness; ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES; - if (avctx->qmin > 0 || avctx->qmax > 0) { - cbr_ctl->MinQP = avctx->qmin; - cbr_ctl->MaxQP = avctx->qmax; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE; - } - - if (ctx->max_frame_size > 0) { - cbr_ctl->MaxFrameBitSize = ctx->max_frame_size * 8; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE; - } + SET_QP_RANGE(cbr_ctl); + SET_MAX_FRAME_SIZE(cbr_ctl); ctx->rc.ConfigParams.pConfiguration_CBR = cbr_ctl; break; @@ -1081,16 +1088,8 @@ rc_mode_found: vbr_ctl->InitialVBVFullness = hrd_initial_buffer_fullness; ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_VBV_SIZES; - if (avctx->qmin > 0 || avctx->qmax > 0) { - vbr_ctl->MinQP = avctx->qmin; - vbr_ctl->MaxQP = avctx->qmax; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE; - } - - if (ctx->max_frame_size > 0) { - vbr_ctl->MaxFrameBitSize = ctx->max_frame_size * 8; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE; - } + SET_QP_RANGE(vbr_ctl); + SET_MAX_FRAME_SIZE(vbr_ctl); ctx->rc.ConfigParams.pConfiguration_VBR = vbr_ctl; break; @@ -1107,16 +1106,8 @@ rc_mode_found: qvbr_ctl->PeakBitRate = rc_peak_bitrate; qvbr_ctl->ConstantQualityTarget = rc_quality; - if (avctx->qmin > 0 || avctx->qmax > 0) { - qvbr_ctl->MinQP = avctx->qmin; - qvbr_ctl->MaxQP = avctx->qmax; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_QP_RANGE; - } - - if (ctx->max_frame_size > 0) { - qvbr_ctl->MaxFrameBitSize = ctx->max_frame_size * 8; - ctx->rc.Flags |= D3D12_VIDEO_ENCODER_RATE_CONTROL_FLAG_ENABLE_MAX_FRAME_SIZE; - } + SET_QP_RANGE(qvbr_ctl); + SET_MAX_FRAME_SIZE(qvbr_ctl); ctx->rc.ConfigParams.pConfiguration_QVBR = qvbr_ctl; break; -- 2.49.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org