From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 32F9C4377E for ; Mon, 26 Dec 2022 06:02:15 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1B90168A49E; Mon, 26 Dec 2022 08:02:12 +0200 (EET) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7FE1C6880B3 for ; Mon, 26 Dec 2022 08:02:05 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672034530; x=1703570530; h=from:to:subject:date:message-id:mime-version: content-transfer-encoding; bh=a19Q3fzTIa513qQintKW5SxPDCV1v2zokMbcHR0rdrI=; b=XDeE+SI+xqZlBX9CNJzTnW/xdqObvPugfFhpRVeRp0L8xq6eU/TFrJoS PpdvCgkdOXYMrD/AvP0ttfdCTlOVW5ITPfB8BnCpsM4V8aEPOaTFxPnct ++pyvSmOfbeh4ESY77U71fiefNJUHdE2AqtmSZz00cRd6Y1sFPN/Q/EVF J7wSKYBXEfOZnGK6gBWKgnCriDITMPMNGjWlRk/UOc5AbVvz66xZtXlgp zyPvM/nckCnrgfTbmHhmcrK+ZHt7R2yf//lPNuwu7wwRxw/Oltbw1aFFR /jXa0YCDz2Pd+5BdcsrdR9vLa9d0knsmdJjwvqrAZVCiZZzPimnN7/tXl g==; X-IronPort-AV: E=McAfee;i="6500,9779,10571"; a="322503340" X-IronPort-AV: E=Sophos;i="5.96,274,1665471600"; d="scan'208";a="322503340" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Dec 2022 22:02:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10571"; a="685088939" X-IronPort-AV: E=Sophos;i="5.96,274,1665471600"; d="scan'208";a="685088939" Received: from wenbin-z390-aorus-ultra.sh.intel.com ([10.239.35.4]) by orsmga001.jf.intel.com with ESMTP; 25 Dec 2022 22:02:02 -0800 From: wenbin.chen-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Mon, 26 Dec 2022 14:02:00 +0800 Message-Id: <20221226060201.2081722-1-wenbin.chen@intel.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] libavcodec/qsvenc_av1: Add low_delay_brc support to av1_qsv encoder X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Wenbin Chen Signed-off-by: Wenbin Chen --- doc/encoders.texi | 5 +++++ libavcodec/qsvenc.c | 4 ++++ libavcodec/qsvenc_av1.c | 1 + 3 files changed, 10 insertions(+) diff --git a/doc/encoders.texi b/doc/encoders.texi index b8051cda3f..543b5e26a9 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3850,6 +3850,11 @@ Extended bitrate control. @item @var{look_ahead_depth} Depth of look ahead in number frames, available when extbrc option is enabled. + +@item @var{low_delay_brc} +Setting this flag turns on or off LowDelayBRC feautre in qsv plugin, which provides +more accurate bitrate control to minimize the variance of bitstream size frame +by frame. Value: -1-default 0-off 1-on @end table @section snow diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 514a1e8148..f5c6a164bb 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -537,6 +537,7 @@ static void dump_video_av1_param(AVCodecContext *avctx, QSVEncContext *q, av_log(avctx, AV_LOG_VERBOSE, "WriteIVFHeaders: %s \n", print_threestate(av1_bs_param->WriteIVFHeaders)); + av_log(avctx, AV_LOG_VERBOSE, "LowDelayBRC: %s\n", print_threestate(co3->LowDelayBRC)); } #endif @@ -1090,6 +1091,9 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) q->extco3.MaxFrameSizeP = q->max_frame_size_p; q->extco3.ScenarioInfo = q->scenario; + } else if (avctx->codec_id == AV_CODEC_ID_AV1) { + if (q->low_delay_brc >= 0) + q->extco3.LowDelayBRC = q->low_delay_brc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; } if (avctx->codec_id == AV_CODEC_ID_HEVC) { diff --git a/libavcodec/qsvenc_av1.c b/libavcodec/qsvenc_av1.c index bb9ad16927..1e7801fefe 100644 --- a/libavcodec/qsvenc_av1.c +++ b/libavcodec/qsvenc_av1.c @@ -110,6 +110,7 @@ static const AVOption options[] = { QSV_OPTION_ADAPTIVE_I QSV_OPTION_ADAPTIVE_B QSV_OPTION_EXTBRC + QSV_OPTION_LOW_DELAY_BRC { "profile", NULL, OFFSET(qsv.profile), AV_OPT_TYPE_INT, { .i64 = MFX_PROFILE_UNKNOWN }, 0, INT_MAX, VE, "profile" }, { "unknown" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, VE, "profile" }, { "main" , NULL, 0, AV_OPT_TYPE_CONST, { .i64 = MFX_PROFILE_AV1_MAIN }, INT_MIN, INT_MAX, VE, "profile" }, -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".