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 A598D4033D for ; Mon, 23 May 2022 02:14:32 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6DDBE68B49C; Mon, 23 May 2022 05:14:29 +0300 (EEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F21E768B0A6 for ; Mon, 23 May 2022 05:14:21 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1653272067; x=1684808067; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ROQLe8GHFaT7kwMk4SoykKCBuKmKSpQveDU3q8TsV5w=; b=nkinHSBysUWcVrzutQrGF+S7hNhvBbo2zXibsF0cWALRMEOzXXConF4E bfxCmWpSCfuQjI31IOk1bn9b3+nBZ8lShV89JSKDY2Pj9mni/7W/Sv3gB 1ggW1Ww9NANuzTvjXJhB1XhkvSeb9hVAuvl5xgwXyx7GV+aiOwRqoe0cT uf6g/RV0bP4ZXCcDyo21YIz88DIkTG6UnSPwmOr4s7TFMvGCYg2A/0Yw8 tN3lHpIBp+zo/VUThAFUgTOHiUiJg75fCvzZRAaMzBXj+rZ22cRt9IgHD cNRzeqRBGhs/fS3/KtYkMu1ETI8Hp09CgSkN5WI4oLlrbaMyt9eWWGJal w==; X-IronPort-AV: E=McAfee;i="6400,9594,10355"; a="260678169" X-IronPort-AV: E=Sophos;i="5.91,245,1647327600"; d="scan'208";a="260678169" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 May 2022 19:14:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,245,1647327600"; d="scan'208";a="525684227" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by orsmga003.jf.intel.com with ESMTP; 22 May 2022 19:14:18 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 22 May 2022 19:14:17 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX608.amr.corp.intel.com (10.22.229.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 22 May 2022 19:14:17 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sun, 22 May 2022 19:14:17 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.168) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Sun, 22 May 2022 19:14:17 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L+YeA3ZGS0qOOJTJZQ2L6vz7LebWrtqEuTz+opfi4fuBRTbl5RPbxEJHVzU1gZfJ3B/WwMFzBKJfchJex/0NWR7nAMP/WLjmZpHe20AZj7fztQ9nhiquWlAqpbvKHDamn3b/7UtKaE75G0skTBY6vVORfJAnO9bikXza3b+UWjfnP6pnVzpq+p8osYF/ln5y2GSVjxO8j4eQNCTqa/f/ZrWdd5dxa3uO57b4uOqctCniUVdxSaCG59YrilGNqUvDtgNe9Jr8hNvyBIPl/uzAml1B2VL256Oorw0DLkFoDoLIGZA8L0XqxB9BOkOKxICwBta/wNIBgJRPBC4wHVGqUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=IiA9ztaDvoEd9c3Vg3TLw2YvkmLnP7clZTa1I6WBjBk=; b=DAxgLWRIW3KPCmjlvcHerN/vwYLfyEpPfQtkv/ssfU2t2ojO78EbpUDQP/ZMDqVeVactLIOEQ0laXRLOz8yMNU2LdgXI7m5XmVu9kv4vtB7flLjHILDNSRM2aK9MJR/AYRyJytAaegyrXh4Ggbwdup2ls9u189UGqgNHk/JBoCC3ZjHp42OvjWSaXVO9tXeQxnhbDbplCC5SplYlV4N1+ue0zghpD1Zp4bzcWAARit7FY7rIN86dU0iLR91zUARjmVIyM59dlCGRWsfyrySj1uPmCXgoMxrS0Gt8lxbI//l489knEPp2iazfJ4xZfYWYj09fbJewpasizEmNuYIvpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5030.namprd11.prod.outlook.com (2603:10b6:510:41::5) by MWHPR11MB1967.namprd11.prod.outlook.com (2603:10b6:300:111::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.16; Mon, 23 May 2022 02:14:15 +0000 Received: from PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::d4:9b61:aa91:ffe8]) by PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::d4:9b61:aa91:ffe8%5]) with mapi id 15.20.5273.022; Mon, 23 May 2022 02:14:15 +0000 From: "Wang, Fei W" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v7 1/2] lavc/vaapi_encode: add support for maxframesize Thread-Index: AQHYYGB2DTSa8bfOhEWJKoJ/d1re6q0r06aA Date: Mon, 23 May 2022 02:14:15 +0000 Message-ID: References: <20220505090715.2016246-1-fei.w.wang@intel.com> In-Reply-To: <20220505090715.2016246-1-fei.w.wang@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bfb5a31c-9287-41db-a6b7-08da3c61ef80 x-ms-traffictypediagnostic: MWHPR11MB1967:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o8Ia40ZplLyZ48BTQMQGj3wHasQm2S1/accIuiw74oQkZX/R/EKlVpg7dXIwYEha2AEx9N4Sg8qnAwe6gt2A/Pzx9AAyhUejpjv00wfuXByCf8z4rSJltxiMj3gS36aRDsDF/KCfVmWyOsce/T/tNN87YlpNsP48aQ4ZEhf9FC+oksHo0mRlEo6YefT+LTPKU/8WivEHdnEKEsjJ+ODdQBVsJ7PhEKVDD2dKu6RYz3TFhHL5KmMsd5FEOsHsgb8C6W1c8Hai9isSvip3s/WjT4jDJ1y1OxQzEoe/8fYeHDgwjE/5HfRhXXJALAiV+MbScWIyNE9I3MlMSe+4orAWw9V9Kf/0xcQaFJJD4w6Q1jKDv/I68zrwarxgt1T3ddOwfDT3uGu61n86vXCTeg8a1Q1M/QskCz+0BHEazlsrUyKBjV/2Tiq/JnwpkMyiW4QvZezjr4h8FwSAcwbEDtPPo6EBoD4o0Nym0gIHIl/JBt83e/TqTpQSH30DHLXfOsUQtB0TNOjmVI4kJQBJOL6eDYa/2+1TCtxUfQE41VT8n9QhO0642DIpa7mm7xK5SGP6eWmXhJsNQUxIdyVFno/9+g8/OhdFErNVbi78GtuZ6ItzT1tFgmaY4zrLg0Jn0sZntQFcttNCNTedToxFOOcVoDxE9s8nb1AKqOl3xKSzlJLio8QHd8/M1IkfUC7Lm1RbLMWeBcUuHrbqljDxpSR3NsJllIjH3ySs5mWn/wfUUnupjuFYNPTwxPM2n9NuuNeLVI/DtJxGpr1lRkg0CymkqslLLwHSWLT+sPFQBlKVi7w= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5030.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(186003)(52536014)(83380400001)(5660300002)(8936002)(38100700002)(53546011)(26005)(6506007)(9686003)(66946007)(66556008)(66476007)(64756008)(6916009)(8676002)(66446008)(76116006)(54906003)(4326008)(508600001)(55016003)(82960400001)(33656002)(2906002)(7696005)(966005)(122000001)(316002)(86362001)(71200400001)(38070700005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?BMYI5fIA9bIWRqtdj6gIxmhiU39cUoUOAiG5FGYxVzaz1waOa9zPpBHXZN0h?= =?us-ascii?Q?fTmuuChW1P5cq9vvvYug/lXMUP66rB5qREfaKGOWvbYRYNWZ+7262bkDu1hL?= =?us-ascii?Q?eyLRVZ/sGqL5aRwShATYyKmbzr3JldaTFgNq+dRrsvJD+OOsQu1rMCe3G9EH?= =?us-ascii?Q?uod+NEBsD8tyEn16V+LDAHVYZD3+SzosipbkQaYM2MVDLsY2yMjL/NtO//wH?= =?us-ascii?Q?3lDPVTqAhJlKGBsBxjaiNQ5mlsSFE4LZf+nLxk4E8jPbpnJqwKcbVG4iNsw8?= =?us-ascii?Q?UdKIyqUHouunZr9chPoOOnORY68VjPhecRoAL0Zv1le7lDCyUYFl8qTSSak7?= =?us-ascii?Q?27l8ec2gFAzeN+ziVDxhVH3HD+3DYTLwhtCS7sJvPYcI5eSKHQ8wIj5o16HR?= =?us-ascii?Q?HmsXyjvxEBoPrjvYjZTiKSugE4RbJMGvDpFHKHYgcuf2Lg5AjbJ3V189ngDa?= =?us-ascii?Q?38Gf032iDI+C5ttWAN/jeOMilnsL+23Bgkbdjn5za73WTbCXjg973ZzRIqC4?= =?us-ascii?Q?rb7E2UpiFQSZcigyiDaNgtjoQHOZ3Igj/5ZbaTptlhopNUpwSO8RAe8DKSMb?= =?us-ascii?Q?tbVaXLBeGHSwNR4l6Dl6pdm2V/x8z6eM43udelLTKlA5hTF/zHIErzxCn9Ag?= =?us-ascii?Q?ShpNciWV3o8b+iZQVZXX7mTLCkYlDMpKdkYzanYIDt76Fg/hYPqD++9Tui3V?= =?us-ascii?Q?WVW1Z9M44hsUw2lIcoBU2z/ybVOJwOe32rHw06tC/d//M04E/Ac4mJPAJudE?= =?us-ascii?Q?dlnilf57Ql87Yw6NXPSdRzRvPIZvvUlqEnGHC5XFH5d7b+H8mkAZXphIiwPp?= =?us-ascii?Q?eR6Cu94ZYOdhV0OhdP4fOm0zWMWpYOSDJx1jqLGWYT0Vg31OeLfjrSSnyUsv?= =?us-ascii?Q?M/LxlwVBlqIzaZydTsHSSuVopvLwY00qC6LSkxJLkYm5X6j/libIJkyV/a4A?= =?us-ascii?Q?/E8mVkfEYgh4YvJyXGnvOuQMXYKT9GGodquz+cGnIfeqWy8Ys+a/+x4IOsmb?= =?us-ascii?Q?1pIDAe3SDlb1OE51ioZy7de/XJysjCOaxdeS1um8QASFzL7JFvv+VJ7y7wnu?= =?us-ascii?Q?K+Zd4Qtaqn2axu71kWtCGUWa1YwCGiXke2KKev7jBMnfPYrl4aHsllYhyNqv?= =?us-ascii?Q?HI1YWMFLfKtgUWPkOSBsEOPlzZv3PbumwVIpQ9pghmZGGBhSUGvCjeQIiGK0?= =?us-ascii?Q?IPKAznL1kE19LEcJzO177CopgT8zjcO0mR3U0duDc1m34nzpP89FiUIX97hQ?= =?us-ascii?Q?ZGDp53r/OXAkt9YfHtstx8c2vyIjFkrOQkFpxKzX79CFHGnRxCYmM6lSntH4?= =?us-ascii?Q?apQPvZGyNwlVqIwjRhzQwJlKG24b4qAMpJ+ShcmuJ8RieZQQy99cFGXi/37C?= =?us-ascii?Q?kYAJeIsYpmI/BcLyltoJB7Ge7xv/PNH21eUQrVtCQJn6PB88POqZTaJcEF5p?= =?us-ascii?Q?xevBPTaLPXtAKukeO98tjT9+qHYwEEvBYUQ3xfsaDRXWHoZ6Yxtzr/nIP9wb?= =?us-ascii?Q?Xz2WSivQdFHPfX3JBdXd8ZkEo/daMbWmYZVXaNcTQDvthJJ+hVz0G9Uszp3K?= =?us-ascii?Q?ruH4IyTAusM2+77Q0BFwye/1ML2eqNEiKZE7wpqmsHEai80gkcW8Adxv0NEy?= =?us-ascii?Q?3j9WTNK/xZy4Krs3EQMv3ltT83BB/63g2T2YtnAyX7tF4zeM3uz/PjraUWQF?= =?us-ascii?Q?x6Pw53ygCwZPGk9okRyT7lDLDauEAFwTZnS/4T+P5/IgR/T2YGfNZlofbfUt?= =?us-ascii?Q?ZNvvlk+MAw=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5030.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bfb5a31c-9287-41db-a6b7-08da3c61ef80 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 May 2022 02:14:15.3401 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HqaxYPdcUOzEvOGKCuyTH1UZhd8QkUFkBeyheCnERpIMD+9fP7C+8iThu/GepYfUyd9SU3ImyAiQudD6VAu+eA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1967 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v7 1/2] lavc/vaapi_encode: add support for maxframesize 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 Cc: Mark Thompson , Linjie Fu 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Fei > Wang > Sent: Thursday, May 5, 2022 5:07 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Wang, Fei W ; Linjie Fu > Subject: [FFmpeg-devel] [PATCH v7 1/2] lavc/vaapi_encode: add support for > maxframesize > > From: Linjie Fu > > Add support for max frame size: > - max_frame_size (bytes) to indicate the max allowed size for frame. > > Control each encoded frame size into target limitation size by adjusting whole > frame's average QP value. The driver will use multi passes to adjust average QP > setp by step to achieve the target, and the result may not strictly guaranteed. > Frame size may exceed target alone with using the maximum average QP value. > The failure always happens on the intra(especially the first intra frame of a new > GOP) frames or set max_frame_size with a very small number. > > example cmdline: > ffmpeg -hwaccel vaapi -vaapi_device /dev/dri/renderD128 -f rawvideo \ > -v verbose -s:v 352x288 -i ./input.yuv -vf format=nv12,hwupload \ > -c:v h264_vaapi -profile:v main -g 30 -rc_mode VBR -b:v 500k \ > -bf 3 -max_frame_size 40000 -vframes 100 -y ./max_frame_size.h264 > > Max frame size was enabled since VA-API version (0, 33, 0), but query is available > since (1, 5, 0). It will be passed as a parameter in picParam and should be set for > each frame. > > Signed-off-by: Linjie Fu > Signed-off-by: Fei Wang > --- > update: > 1. return error when fail to set max frame size. > 2. refine commit and debug message. > > libavcodec/vaapi_encode.c | 74 > +++++++++++++++++++++++++++++++++++++++ > libavcodec/vaapi_encode.h | 10 +++++- > 2 files changed, 83 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index > 0e2f5ed447..284ce29888 100644 > --- a/libavcodec/vaapi_encode.c > +++ b/libavcodec/vaapi_encode.c > @@ -365,6 +365,17 @@ static int vaapi_encode_issue(AVCodecContext *avctx, > goto fail; > } > > +#if VA_CHECK_VERSION(1, 5, 0) > + if (ctx->max_frame_size) { > + err = vaapi_encode_make_misc_param_buffer(avctx, pic, > + VAEncMiscParameterTypeMaxFrameSize, > + &ctx->mfs_params, > + sizeof(ctx->mfs_params)); > + if (err < 0) > + goto fail; > + } > +#endif > + > if (pic->type == PICTURE_TYPE_IDR) { > if (ctx->va_packed_headers & VA_ENC_PACKED_HEADER_SEQUENCE && > ctx->codec->write_sequence_header) { @@ -1869,6 +1880,63 @@ > rc_mode_found: > return 0; > } > > +static av_cold int vaapi_encode_init_max_frame_size(AVCodecContext > +*avctx) { #if VA_CHECK_VERSION(1, 5, 0) > + VAAPIEncodeContext *ctx = avctx->priv_data; > + VAConfigAttrib attr = { VAConfigAttribMaxFrameSize }; > + VAStatus vas; > + > + if (ctx->va_rc_mode == VA_RC_CQP) { > + ctx->max_frame_size = 0; > + av_log(avctx, AV_LOG_ERROR, "Max frame size is invalid in CQP rate " > + "control mode.\n"); > + return AVERROR(EINVAL); > + } > + > + vas = vaGetConfigAttributes(ctx->hwctx->display, > + ctx->va_profile, > + ctx->va_entrypoint, > + &attr, 1); > + if (vas != VA_STATUS_SUCCESS) { > + ctx->max_frame_size = 0; > + av_log(avctx, AV_LOG_ERROR, "Failed to query max frame size " > + "config attribute: %d (%s).\n", vas, vaErrorStr(vas)); > + return AVERROR_EXTERNAL; > + } > + > + if (attr.value == VA_ATTRIB_NOT_SUPPORTED) { > + ctx->max_frame_size = 0; > + av_log(avctx, AV_LOG_ERROR, "Max frame size attribute " > + "is not supported.\n"); > + return AVERROR(EINVAL); > + } else { > + VAConfigAttribValMaxFrameSize attr_mfs; > + attr_mfs.value = attr.value; > + // Prefer to use VAEncMiscParameterTypeMaxFrameSize for max frame > size. > + if (!attr_mfs.bits.max_frame_size && attr_mfs.bits.multiple_pass) { > + ctx->max_frame_size = 0; > + av_log(avctx, AV_LOG_ERROR, "Driver only supports multiple pass " > + "max frame size which has not been implemented in FFmpeg.\n"); > + return AVERROR(EINVAL); > + } > + > + ctx->mfs_params = (VAEncMiscParameterBufferMaxFrameSize){ > + .max_frame_size = ctx->max_frame_size * 8, > + }; > + > + av_log(avctx, AV_LOG_VERBOSE, "Set max frame size: %d bytes.\n", > + ctx->max_frame_size); > + } > +#else > + av_log(avctx, AV_LOG_ERROR, "The max frame size option is not supported > with " > + "this VAAPI version.\n"); > + return AVERROR(EINVAL); > +#endif > + > + return 0; > +} > + > static av_cold int vaapi_encode_init_gop_structure(AVCodecContext *avctx) { > VAAPIEncodeContext *ctx = avctx->priv_data; @@ -2548,6 +2616,12 @@ > av_cold int ff_vaapi_encode_init(AVCodecContext *avctx) > goto fail; > } > > + if (ctx->max_frame_size) { > + err = vaapi_encode_init_max_frame_size(avctx); > + if (err < 0) > + goto fail; > + } > + > vas = vaCreateConfig(ctx->hwctx->display, > ctx->va_profile, ctx->va_entrypoint, > ctx->config_attributes, ctx->nb_config_attributes, diff --git > a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h index > af0588c30b..359f954fff 100644 > --- a/libavcodec/vaapi_encode.h > +++ b/libavcodec/vaapi_encode.h > @@ -191,6 +191,9 @@ typedef struct VAAPIEncodeContext { > // Desired B frame reference depth. > int desired_b_depth; > > + // Max Frame Size > + int max_frame_size; > + > // Explicitly set RC mode (otherwise attempt to pick from > // available modes). > int explicit_rc_mode; > @@ -268,6 +271,7 @@ typedef struct VAAPIEncodeContext { > VAEncMiscParameterRateControl rc_params; > VAEncMiscParameterHRD hrd_params; > VAEncMiscParameterFrameRate fr_params; > + VAEncMiscParameterBufferMaxFrameSize mfs_params; > #if VA_CHECK_VERSION(0, 36, 0) > VAEncMiscParameterBufferQualityLevel quality_params; #endif @@ -478,7 > +482,11 @@ int ff_vaapi_encode_close(AVCodecContext *avctx); > "Increase this to improve single channel performance. This option " \ > "doesn't work if driver doesn't implement vaSyncBuffer function.", \ > OFFSET(common.async_depth), AV_OPT_TYPE_INT, \ > - { .i64 = 2 }, 1, MAX_ASYNC_DEPTH, FLAGS } > + { .i64 = 2 }, 1, MAX_ASYNC_DEPTH, FLAGS }, \ > + { "max_frame_size", \ > + "Maximum frame size (in bytes)",\ > + OFFSET(common.max_frame_size), AV_OPT_TYPE_INT, \ > + { .i64 = 0 }, 0, INT_MAX, FLAGS } > > #define VAAPI_ENCODE_RC_MODE(name, desc) \ > { #name, desc, 0, AV_OPT_TYPE_CONST, { .i64 = RC_MODE_ ## name }, \ > -- > 2.25.1 > Mark, any other comment on this version? Thanks. Thanks Fei > _______________________________________________ > 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". _______________________________________________ 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".