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 5595242724 for ; Fri, 29 Apr 2022 07:40:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 95F3B68B29B; Fri, 29 Apr 2022 10:40:43 +0300 (EEST) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DCBF768AF13 for ; Fri, 29 Apr 2022 10:40:35 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651218041; x=1682754041; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=qS7XQbL3IbeHTI/s43AvB+PsbcEKY+3jIUm9Z32ks+E=; b=Ji9ESy9AovJDQ7p6pwvW3ptnKqX24YBY4OvDvbB/ehpgcwQerGGZAfPy bVxUetI95LWWxp6kbzZrRLN5O9GsdZ3JYg48IfzFdbKWeAS70xlUSnFPA OcfwmWHYeonh9N3LYk9FLjR23PpTvBT3/hev0oT/vvlPeZcsehte5mcVI LDwjsp//wuXzD8clmm3hgvLeYYzrHquiNS3stOWm9fdBRNZ5oXDdDnoXf J9cwpfbbEo+u4N83lSOaSuo8M0Xi7EhR2yk//OzaV4sFD0ktsmKzDm2/E 0c19s5BngU2sJL50XCOihGVC4C2FCTHnjzzgxpE6cMqXETZUhwf7+cI53 A==; X-IronPort-AV: E=McAfee;i="6400,9594,10331"; a="265412162" X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="265412162" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Apr 2022 00:40:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="651638346" Received: from orsmsx605.amr.corp.intel.com ([10.22.229.18]) by FMSMGA003.fm.intel.com with ESMTP; 29 Apr 2022 00:40:33 -0700 Received: from orsmsx608.amr.corp.intel.com (10.22.229.21) by ORSMSX605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Fri, 29 Apr 2022 00:40:33 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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 via Frontend Transport; Fri, 29 Apr 2022 00:40:33 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Fri, 29 Apr 2022 00:40:32 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jD9Wogg4GcTWJ1/KcxPCvHvJgaATDs26piliXJCTNFttDWceelxitJ+UV/cPkSBFzrP6oqyHbCBqvuaCfRI/Uu67E0VCduZ7e0Plxs+piZZtCkEJsCu7m+rPqetWvxfDNbSvcFHos3GFhJLQ1KZ8xA8OMQmB5UPOIWnqz5BwrdDi75AzrkiTfd5Vc+VS1Vu8X/+iLvX8gaC9QqAU3l3LE22+ap3uiMpGvxXcfbZWfzyLE4zhKNbe1cXsm0wiYBwQVDAmihrRn09tZI7ZAGGOMkgGDAo81S7nJ63Nym2SVgyiN5G639eCNJMZ+ydKZc2vUalhgUL2XeXUEpmsFv+1hg== 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=qS7XQbL3IbeHTI/s43AvB+PsbcEKY+3jIUm9Z32ks+E=; b=KwHALEKZx1HsQEzKnkillGT3MZmSxZvIh5lv+1ejBH2L+7yVz6G5NSjajP914sL2z3F8P0n7kijz8EyEUrRctDOBN03rkX5DSzAve2Snw2Gg3DS8j1/Ywf+telkhaoFsmEMkXbMpqllVoDBg8Zp5DFTqrteyNsvB1Sum4iCGejojsAtwoumqnkRnxEElTw+OdIA7+NKgeXEvaWOmvJ4209HtwZ7Sx8n5UGOanNKpjKRTMb0eaaAWUDT0k+NwC0TdinqRltnqveQoPZx0frqtscvMjpr3RgVqotJN1sTrZoLCEU7c1hOLU0RrAkXmB+KHlYhKoJKDxY+25z0VxMXhVA== 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 BN6PR1101MB2130.namprd11.prod.outlook.com (2603:10b6:405:4f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Fri, 29 Apr 2022 07:40:31 +0000 Received: from PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::d4:9b61:aa91:ffe8]) by PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::d4:9b61:aa91:ffe8%4]) with mapi id 15.20.5206.013; Fri, 29 Apr 2022 07:40:31 +0000 From: "Wang, Fei W" To: "Xiang, Haihao" , "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v5 1/2] lavc/vaapi_encode: add support for maxframesize Thread-Index: AQHYVgvLtchDrdStukmgX27OmBUrM60GZOcAgAAnmxA= Date: Fri, 29 Apr 2022 07:40:30 +0000 Message-ID: References: <20220422053615.1638095-1-fei.w.wang@intel.com> <06bbdb902ec0781d23bed3a562cebef7e0dcaf07.camel@intel.com> In-Reply-To: <06bbdb902ec0781d23bed3a562cebef7e0dcaf07.camel@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: 1160474b-f082-4a96-325e-08da29b38997 x-ms-traffictypediagnostic: BN6PR1101MB2130: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: WxKrbEVhXTYre5kIaEtRY0bmmo/aa+IB/CZH1fMz6/7DWBxL1dgwPc2shncMAccSLQ38KULT43Fh/CLO3YqxSbAUzJ5LOEgPJwWShPver8/dGxyCiSaJbuzuVNfO5DrC3xhld9xlpynt825mdnhG7/y79wlCbKkaJePhmYQA+3ng2vAYuKVv1XWjTyn1hws0edeZgIn3IaQOV+6k08wshbrV8HSaZw3AOeb7j2NzyWJT12coI3PBZrls7UtOSB0T8yHEAL9csnpaorFzJC+yUFH19JVrBfnz6TbgalKVztFKAWL0HZaf1Vy5KG5Tqw9cdTcB9aMkBM4eQ5XzqfEI4gWipUI59XjjZOhH2oSAojpZOXYaZVLqi5ktKPabJiBlEAciipBXh27zPjdWav7PWvYywvBDuGmSQa9CKJj16PD8rtCofbKeZL0AvUFoHi3Qgkn/2yCXoYsl+UR2Do2P3tuMF27POoT44cARWgkvSG4I+frPQOhE897SgMAoI1nlKqFDBi0FYKD9YbdyAkLonzTEgW+SNIRo3hla4szXeEHtaeyVPM2/wsZMyfc/UfP680rHRoO+zref0yxnOxkPOBw1nBufIjmqI6BsdP2/K3HqUaSH6+4PLrAiDKcM49nEPJAo+/XzFIufpPnx5bWNG7Hb0DEIJT8XI4QwWu62AjXDv7G6QwWA9dEPFLzGl6Yo+jh4J+Sp9w+Je/GHulWSCQ== 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)(8936002)(186003)(107886003)(508600001)(52536014)(5660300002)(7696005)(26005)(6506007)(9686003)(33656002)(38100700002)(38070700005)(53546011)(82960400001)(122000001)(86362001)(83380400001)(55016003)(110136005)(316002)(4326008)(66556008)(8676002)(71200400001)(64756008)(66446008)(66476007)(76116006)(66946007)(2906002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?QzFSZGF2NlpxYjUwNW9WdmI0WXRROFVYRVJsdjB4QVpSTld3dVQxQ3BGZWxv?= =?utf-8?B?UkJHNHNYUEpYQ3c5bi9RQlhKa2hlUmRscUdqZ2FjSzNnVXNibWlaZGkzcHor?= =?utf-8?B?RFRDeVA4bjMrUld3d0lmaVBwZE0yYjNtOVEraEVVcE9udW1pUFU4ODBjbEpv?= =?utf-8?B?RkhZMzJLUWp5WGRQMG0xNGJqR0xoMnFveFc5Nm1ldXFFSjZiTmE2dndxRXBJ?= =?utf-8?B?RnZPcTNrYlpwUXRLRE9QU1F4bTJGb1A3UTZ3LzRoRnEybVV6ZGdaVFhEdDEx?= =?utf-8?B?VUZ5b1hSVDVGVVIxY2tFTEx2MjJBY05Ibmw3dVVBcTNsWXliWng0TU44ZjNx?= =?utf-8?B?alFteUJ4dElNY1VseVJUQ3djR3VvTFlmdXZZemNOMS9waHBHNVViWjhLRTY2?= =?utf-8?B?TWNMcHY1L1FoblR1c2g1eUZPaUkyTjBVV245WVhFMGdFMlE1TDlCWU9ITHZ6?= =?utf-8?B?OVdTWStRSC9qSjVtTEJCMG96MjFpdXlJMlp1cVo3YzVMV1cyeWZDZlIwb0R0?= =?utf-8?B?R2FYSkp0UGFRSEE0Q2xPSWxrbzArNVZ6ZEVxcWYwSTlqTDNBTHZOdUh1MFQx?= =?utf-8?B?UWJJeUVVM2tEUi8wd1lqL3lFTzhnL0FGQ3cweGc3aCs0S282ZE5BRWpac0Rs?= =?utf-8?B?VVVrUjRWVWM4UCtTQWJXUjBFQVZDbVhEcVBDWWZ6UVZxT3VESkdIUVJsb01I?= =?utf-8?B?VUwvQ1k4aHJUN01VTk1jQ1lCKzZzSG1QSDYwTEFUMkdZWVlqcjJ4RjBrd2Zz?= =?utf-8?B?N0FMN0xOaHIvdHQ4YjVqMUNLTit4OVNNajZhLzZsVS82S0VjZWMzL1RMTEti?= =?utf-8?B?N21ranV0TnN4RGpJVWZMcXRvWFRPMlZOQ2kvRHFwVWlCaW5lSlB0aUoxS2pR?= =?utf-8?B?RWtyalR0Ulo1WFRBVnJZUFcycmdSVUhCYTVhd2dnakxCVVB1aTNDTzFzdFkz?= =?utf-8?B?V3FyVzJXc2xqN1BWUG43OVFndFJKSE85ZlhJT0ZrKzR0VFM2aXBYQkZQeUY2?= =?utf-8?B?VThxWm8wOEVMZlRxUFk2TytDeGNTNjF0OThlV01laWpXUHVWY3MrWnZaRko0?= =?utf-8?B?MlNUS1JSN2RlVzFVVHRmT0EybDhRdDdvVVdHRUJkY0ErbWtUdGI1TUNRYWIz?= =?utf-8?B?blY2K1kxUXZCWWNJNUUxMm5oWjFvTEFXWTVCcmdEMXlQVW5MMmtDTTlkd2JR?= =?utf-8?B?VEtMVFYreXFpaVl1WTZCNXY1VTRiMVQwdnMwVDlxNDlGNUJYZFg4c1Z1NVky?= =?utf-8?B?bTZWRk54aXYzMk1zY1RldE1BWWZOOXduZ1hxMEpYWllTTklYR1AyTHBjOER3?= =?utf-8?B?bUhndSsvZ3VSM3ZoUEpDZlZCaUM2Vk1BOUg4MDVRVFoxWjFuNTFNZFY4RzBx?= =?utf-8?B?eXJFZW5QUThvZTF0WE5jVFI0YWhhTkYxS1pFRHdKb1NuczQyaWthcTJQNUNx?= =?utf-8?B?b09zSDY1bm1mOXlwVkM2bFJya3BIbG1JcUhEeXR2K3lGbzRkU1NpcnJwQmds?= =?utf-8?B?czFyeTAzWXZKc1RaQmlwbmtGSVdxSkw4QWtXUkVNL3NZV2tIMFdSbCtwYjVF?= =?utf-8?B?UFpLd0haMEhxU09hL3ZBNkN0NDhGR2krNnQ3cUp3TGdIakFFYmVqY2Q1bVBr?= =?utf-8?B?cHNTU2JUcVkycS81TFRTb2NwTzBtRHMzNFJHMGEyV3Bsbk5zY0dKSHE4M3Zl?= =?utf-8?B?dUNSenFrd1BYZlh5UXV3TllHYXhNQ2tZaDhHek9ZK3ByRnlmZHpnWGFxTGhP?= =?utf-8?B?Q0FaTHZwSG9IVXN3dEVxbzlZUkMvdTlpcmxpNVJITGwvbVlOa1BNMERQUFFK?= =?utf-8?B?TW9hZy9uQk9nRFgyZHZ5eE1xMDltUUFuY2lsOVRldHNPRDFEeXAzNlRGTVNx?= =?utf-8?B?a1l1RXljZlJNRDdtZk9XbTdpMzhlcFVLWEU5aFdxQzBZTzJvVEE0V2pqMS9F?= =?utf-8?B?VS84Z1pnZTI4bGx2UUlIdlRRTHIzUmlMN1VVUE1UZjlXUFBvZzhqanNOTmM4?= =?utf-8?B?QzZVRklrVzkxT3MwWWtNeHh6dmFjc25HTGNYbjJqZTlydjVWV3hzUkZPTHdz?= =?utf-8?B?NGxpV0Z4ZHlBMmQ1UnVGRGp3QU9LNUtQNXl6OEhBaHFjQ1RCSnVYR25jM2JI?= =?utf-8?B?b1FQTXpwblE3UTF2emNDc2krRmlpQlh2cllXQXFSd0JPZWUyL2lmMDhTa2Z0?= =?utf-8?B?clJyb3hQZzBqMW81MFRIckhwMVN1Rjd0MHltb0ZRSlFONFJiNnhOTXQ1bEdl?= =?utf-8?B?d3lTNkdVb0lNS01NRXkrUXFCOFVFM0x3RktZMy9TYWNIcW80SlJvYVFFRUhH?= =?utf-8?B?VkhKWU96ZkFCQnhtbGZ6NkZGSk5tL0o4MGgyWUtWbFZIeUovWDdSUT09?= 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: 1160474b-f082-4a96-325e-08da29b38997 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2022 07:40:31.0462 (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: 8ojrVKBubdDuhHiRTkWiLDSwTqNguta7ZHsWGx+Bz7WTkk4U0UWpbwDWh90RSo6ElApBUGi65WWCm8cSu1OBoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1101MB2130 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v5 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: "linjie.fu@intel.com" 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: Xiang, Haihao > Sent: Friday, April 29, 2022 1:18 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Wang, Fei W ; linjie.fu@intel.com > Subject: Re: [FFmpeg-devel] [PATCH v5 1/2] lavc/vaapi_encode: add support for > maxframesize > > On Fri, 2022-04-22 at 13:36 +0800, Fei Wang wrote: > > From: Linjie Fu > > > > Add support for max frame size: > > - max_frame_size (bytes) to indicate the max allowed size for frame. > > > > If the frame size exceeds the limitation, encoder will to control the > > frame size by adjusting QP value. > > > > 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 > > --- > > Change: > > 1. use VAEncMiscParameterTypeMaxFrameSize to set max frame > > parameters, which is a more generic way. > > > > libavcodec/vaapi_encode.c | 65 > > +++++++++++++++++++++++++++++++++++++++ > > libavcodec/vaapi_encode.h | 10 +++++- > > 2 files changed, 74 insertions(+), 1 deletion(-) > > > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > > index 0e2f5ed447..c2a39bc4ed 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, > > + > > +VAEncMiscParameterTypeMaxFr > > ameSize, > > + &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,54 > > @@ 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; > > + > > + 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_WARNING, "Max frame size attribute " > > + "is not supported.\n"); > > + } 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_WARNING, "Driver only support > > + multiple pass > > " > > + "max frame size which have not been implemented in > > FFmpeg.\n"); > > + return 0; > > + } > > + > > + ctx->mfs_params = (VAEncMiscParameterBufferMaxFrameSize){ > > + .max_frame_size = ctx->max_frame_size * 8, > > + }; > > + > > + av_log(avctx, AV_LOG_VERBOSE, "Max Frame Size: %d bytes.\n", > > + ctx->max_frame_size); > > + } > > +#else > > + av_log(avctx, AV_LOG_WARNING, "Max Frame Size is not support with " > > + "this VA version.\n"); > > +#endif > > + > > + return 0; > > +} > > + > > static av_cold int vaapi_encode_init_gop_structure(AVCodecContext > > *avctx) { > > VAAPIEncodeContext *ctx = avctx->priv_data; @@ -2548,6 +2607,12 > > @@ av_cold int ff_vaapi_encode_init(AVCodecContext *avctx) > > goto fail; > > } > > > > + if (ctx->va_rc_mode != VA_RC_CQP && ctx->max_frame_size) { > > + err = vaapi_encode_init_max_frame_size(avctx); > > + if (err < 0) > > + goto fail; > > + } > > Set ctx->max_frame_size to 0 for CQP, otherwise > VAEncMiscParameterTypeMaxFrameSize will be passed to the underlying driver > for CQP when ctx->max_frame_size is non-zero. Thanks Haihao. Fixed in V6. Thanks Fei > > Thanks > Haihao > > > + > > 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 }, > > \ _______________________________________________ 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".