From patchwork Wed Jan 12 05:28:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Chen, Wenbin" X-Patchwork-Id: 33274 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp4338745iog; Tue, 11 Jan 2022 21:30:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJydu6bp/GvgUHpBckRustZCLYA2g+sW2OXuHjvBUehMPVNlkvBEtdOKYJtj1whNICTSq14T X-Received: by 2002:a17:907:6d8d:: with SMTP id sb13mr6301253ejc.19.1641965438665; Tue, 11 Jan 2022 21:30:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641965438; cv=none; d=google.com; s=arc-20160816; b=hVHznq7cn9ypGXhKx9cnel/xUQ5yumv7EsasN6pBX43+laelA581JWTnID9yIXxhMs F0GQCnxiG6pC/uDZWnzQEH/62SeyMGcNyt1Qkq6qGgHhFJVmVbWh1wRRCOnKY1Idqa/U NCDSeSLnTZKjN0ERyMSZ1xmoX70iISQ9AnMFV8ypM1bOSC7fOhXLiJkO8Flnb3dzw3WB dcpngzDRRBGEAD0q0BgcyR8UW9AG9Zk0ZNAh2YAxj8YkDy+qnA5FCwafIvExXPOPHtQJ cHYgEvmeoqIl1hQtmdqMU3sy41QXiEYzKFYFCeW0oBtKBjLkPhLuow6zuwX+X2AM3qZb eJLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=5IfecCpVgZYj/8pq+TLrYySKRukzy0DE16+OOVboDk4=; b=XPQd66wwG4ZMoMdLUJoUUtBtB3fZoSmG6t1o3VTm8RJYcTltW64IyZZRA8OjLi5ndp VO175eIJN3fDX7nGBukC9Nkg2Ejwcj9M0flP3Jfw13W7aZl4tXngh+0X1MiFIU9dVQbi n0BM6vaTOkTbbgUNGvFM42AgreA/VbOfW7ULK34BQXYRHO2H4TZX9u64t/eyRAADa09E Fp7ISdcP1UZIsjyaF3AxfsCEIM34b1j1mtoLmAmL4y/ZKRtJg9qtmpK8bauWdiNPqSjh jER/Tcol1nNfBEpS/APfA8wMESfLu0CC8Q9q+ID852Kk6SEa03kRRHjd6GU00DRamEEd sZvA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=avFnGCvJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id nd26si7224331ejc.952.2022.01.11.21.30.38; Tue, 11 Jan 2022 21:30:38 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=avFnGCvJ; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7DC6E68AC54; Wed, 12 Jan 2022 07:30:18 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 06F7A680BA3 for ; Wed, 12 Jan 2022 07:30:08 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1641965414; x=1673501414; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=iVBi4dYE8Ie/s9rRQ2RUOVsEDr/3acTIixCi8XHCLVQ=; b=avFnGCvJYoxLIlTzR9Zntmt4mBFnI2ScluTVAdvYsryGT/t3HQVB6JPX IK0sDYJbf37X8KyeWtARxFf1tUHeWImvz5Zkgtb95Dzs2q9Luw5P/N+XV aic8DqAOPAuwvfClts+j2694tULwwZKUR7AExVHUIz0RM83PxreTiL+7f 0ozFIiMj3poudgwQ2QssPtYhpA965joYrfEOMV3CuPPpTlc6+14dviSj9 aYugsytQ5XysUyhDxCSKW0nDRR2SS9sxlybYn0UPRKMcVP6o1KEIGRW8O YJHshAAjF4NkKEoahcRkcDXdn5CUgsEPsl2cobm7cdAzBs1fGwCDdePFN Q==; X-IronPort-AV: E=McAfee;i="6200,9189,10224"; a="241215386" X-IronPort-AV: E=Sophos;i="5.88,282,1635231600"; d="scan'208";a="241215386" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jan 2022 21:30:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,282,1635231600"; d="scan'208";a="515357880" Received: from chenwenbin-z390-aorus-ultra.sh.intel.com ([10.239.35.110]) by orsmga007.jf.intel.com with ESMTP; 11 Jan 2022 21:30:05 -0800 From: Wenbin Chen To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jan 2022 13:28:49 +0800 Message-Id: <20220112052850.1147160-3-wenbin.chen@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220112052850.1147160-1-wenbin.chen@intel.com> References: <20220112052850.1147160-1-wenbin.chen@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH V2] libavcodec/qsvenc: Add max_frame_size support to hevc_qsv 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 1cxuwt7vhE3L Add max_frame_size support to hevc_qsv as well. Signed-off-by: Wenbin Chen --- doc/encoders.texi | 3 +++ libavcodec/qsvenc.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/doc/encoders.texi b/doc/encoders.texi index 7cc8be1209..68921fbd40 100644 --- a/doc/encoders.texi +++ b/doc/encoders.texi @@ -3388,6 +3388,9 @@ intra refresh cycle. @item @var{rdo} Enable rate distortion optimization. +@item @var{max_frame_size} +Maximum encoded frame size in bytes. + @item @var{idr_interval} Distance (in I-frames) between IDR frames. @table @samp diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 602436da63..a13718652e 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -855,8 +855,6 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) if (q->mbbrc >= 0) q->extco2.MBBRC = q->mbbrc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; - if (q->max_frame_size >= 0) - q->extco2.MaxFrameSize = q->max_frame_size; #if QSV_HAVE_MAX_SLICE_SIZE if (q->max_slice_size >= 0) q->extco2.MaxSliceSize = q->max_slice_size; @@ -885,6 +883,8 @@ static int init_video_param(AVCodecContext *avctx, QSVEncContext *q) if (avctx->codec_id == AV_CODEC_ID_H264 || avctx->codec_id == AV_CODEC_ID_HEVC) { if (q->extbrc >= 0) q->extco2.ExtBRC = q->extbrc ? MFX_CODINGOPTION_ON : MFX_CODINGOPTION_OFF; + if (q->max_frame_size >= 0) + q->extco2.MaxFrameSize = q->max_frame_size; #if QSV_VERSION_ATLEAST(1, 9) if (avctx->qmin >= 0 && avctx->qmax >= 0 && avctx->qmin > avctx->qmax) {