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 52B19406DE for ; Fri, 29 Apr 2022 05:18:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 53FFF68B17E; Fri, 29 Apr 2022 08:18:15 +0300 (EEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5D33D68A56F for ; Fri, 29 Apr 2022 08:18:08 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1651209493; x=1682745493; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=z9iFQBnd1LG9nItJUujpj6PZnuKnIAo3O+d+n2hOT6M=; b=BaGih9oWM4Tk1zNo9xjGcDoL1qYrjnqGK5e+miNy3bJbBQGnph21a9Gi n7yPucCpEM2+hwVoaA/4yH6jwApB5ZFqxWr6LPM508MCC3hgDz1jHxO4D IBvz/hPmluXiN6yD+YPhRrGjPI997y0x4TLWIhDVXZFCtYISzyrNkepYZ pLdE0OH3HsubEYB30hI3s3/Btt9DTuUMVy5nEi3kTI6McAzK+ONjKClLV n9E5R3l8A5+h/h0sdw8gXpxfF0gvp5r4G+Uudrl5w523iGpwQYym+N5C5 zSewK1BpFtp0qXcaJIvZuyMAExNG8iYfjbP6JoR5c/0rJblZYqK7Dvdcm A==; X-IronPort-AV: E=McAfee;i="6400,9594,10331"; a="352965779" X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="352965779" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 28 Apr 2022 22:18:06 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,297,1647327600"; d="scan'208";a="581886040" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orsmga008.jf.intel.com with ESMTP; 28 Apr 2022 22:18:06 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Thu, 28 Apr 2022 22:18:05 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Thu, 28 Apr 2022 22:18:05 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.104) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Thu, 28 Apr 2022 22:18:05 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BdX5nl/Kk0IZiMy0J8/tqH5ydHeepYZ3hOE+eS4zFsW8kx1V56nbaXf7N1f2SVRSD6sW4Yh3PgzEVroJigtIonZoU0K84QY29liSTHVhmb0kM9Il1YEquXe6zthzuFYkhRVzkJ1nKdCwRJUoDEpzEfjU/JprL/yVjhKlk5Upj3yr3huiOQ+NxkC9LttTJw+jpYmMcqJ7AFBY2rfNVKB6q0FH/qmQjXk27Eal+rT8SLkZm3t076P4qtCfxHXuPFToNE4zpFWb6xV/bE3D/XWmgTdONJ+hvKdOfKzszLFdrcGGHtled2riCQNYsx2DMj/S1DHCEz8AjYp69ezNrqLNag== 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=z9iFQBnd1LG9nItJUujpj6PZnuKnIAo3O+d+n2hOT6M=; b=nrTkicKzYOLMK/K/9fsbCMd/eRtIlG+ZsjNBBgKIZY1068N9L1CzAtOBAArnc+5pNq1WwP61qUcO+UqAkxkD1qdq2FHIMtAn1t/6dktydv3KbEBwBgPPOY0HQ7LBLaKAcFfB3eNFYlmkVp3uzs9p8TNbeAoVeOUYSfjX5rNoYZDoQvnIZFlGqB4foWAtuV4Q1CZUGWk3tr5rWYj5sOLWKx186meylNEwpCxwLKiYY75CeLjgT0fkaRgXapclza0HF4LSWOKPLuwZc0omLhBgV92cMlNHUpGA6BrhSFQtJvcKqTWHMNhGlfoMtV4qG+cTfSXOKdqARpRNhpIZzOz+9A== 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 CH0PR11MB5507.namprd11.prod.outlook.com (2603:10b6:610:d6::8) by BY5PR11MB4008.namprd11.prod.outlook.com (2603:10b6:a03:186::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.15; Fri, 29 Apr 2022 05:18:02 +0000 Received: from CH0PR11MB5507.namprd11.prod.outlook.com ([fe80::c9dc:bf3c:9f62:e267]) by CH0PR11MB5507.namprd11.prod.outlook.com ([fe80::c9dc:bf3c:9f62:e267%3]) with mapi id 15.20.5186.025; Fri, 29 Apr 2022 05:18:02 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v5 1/2] lavc/vaapi_encode: add support for maxframesize Thread-Index: AQHYVgvUDcqinHoV6EWnwI3T+OHCZa0GZOQA Date: Fri, 29 Apr 2022 05:18:02 +0000 Message-ID: <06bbdb902ec0781d23bed3a562cebef7e0dcaf07.camel@intel.com> References: <20220422053615.1638095-1-fei.w.wang@intel.com> In-Reply-To: <20220422053615.1638095-1-fei.w.wang@intel.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Evolution 3.28.5-0ubuntu0.18.04.2 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: b2afb242-fafd-43bd-bb3d-08da299fa23a x-ms-traffictypediagnostic: BY5PR11MB4008: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: qn2wcCxVTT+cjROQsYTIujqiMlcOBhp/r5m23snniF1/WYWTLf33NrrrTKMwaiTobq0xxgWDZIYUwSbH+yOH8Kx92OdBVg27ucf5hRIaX8gXVk0ya+avNhKs8PBNkoK5WYKeetlQzNqJM4L0f//acvvy/zk6nuJHH4lUq1XCnsNpSFLzWm8KcfCx7+liOc9dae9pgLIPWJPPLyp+M0jl6hklDbIwi3QTIj5cNNpWsBDq7dnGJldbsjx5+BLLKchhLIDlJFVxQ0UXbtUGUWumdjoGeQrxq5fi8aWkfNYagxFmPK2kQjlkEXzSccxjsa26sVgbbzFQobnjjf4C43Ph5wocNCaqmG+UXWd1VgbmXdmKVKTIhXVUcLWVwy9RZD95AuKm323bEx4c3hl0ekpC1QR/R0SeSt74zwfijIkS46+r36bfYZBBsJbbNLcIUzVJnsbZzIfVR3lIJHa7Dsk9ywpjJIp0lBayEZc3ogNmAuQUOpAIgrpsJxf9So2FvrmJT99sKcyGoSOi3BvTON16hzEOQzK/xkyCGs5kGRw70fN51Tm2ngG5GlbsDwhIvFm3j+wuC8T2TAy+Z+3EK91oyNuO7qXoE0a6Wjj60f9JCsQ4a+0CxZH5TrDptNIO+ejt8p5gPTIofM4iuzormODmTnT/xldy2norxecqqVrHCRc7P7Ty6g6c+2BINYlOnEOFJrZBUV2Ywle7rmH6JnQqFtq09XnHpH8af/h83bUgLZU= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH0PR11MB5507.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(366004)(2906002)(122000001)(66946007)(36756003)(71200400001)(54906003)(38100700002)(5660300002)(38070700005)(508600001)(76116006)(316002)(6916009)(91956017)(6486002)(82960400001)(8676002)(26005)(86362001)(83380400001)(6512007)(6506007)(8936002)(66556008)(66446008)(66476007)(64756008)(4326008)(186003)(2616005)(107886003)(99106002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MGNjUnlLVEFISmlFNWxXU0UwVHR6bk9yZzRWSkZUMm9wdWpJWUhwUTllc0lP?= =?utf-8?B?MUJZMFFNK0ExKzJUNVFpbGsrRlNlUy84NDU1cXhwU1BRRFpmS2thbk02SDB1?= =?utf-8?B?UnJRYnhlL0xqcXdvTlE4SEFaM1M2T2lHR2F5eGNjRTJtNmhGbHVETkpXeWdL?= =?utf-8?B?QzFIUkJoWHlwL0VPUm9Jc0JqNExaYTlDOUZXMnVZdkRPTEhvYVNSejJuc1BC?= =?utf-8?B?MGYzSTlOVkFrNWpQUkFsTUg5ajkzV2ozeUVFRzlpdjBuSXdVZldKZ2h2YWFE?= =?utf-8?B?TFA4OG9wTktkM2lBOFA3YzFQS0t5Q2pzSHQxcjNEUUd0VDFkOXVOS3VsMVI5?= =?utf-8?B?MHRKc2JkRlduQlZwMHYySDNLUXU1Ymo2YnBxR1pvUnJLVGM3Q1YzdHg2NFR3?= =?utf-8?B?QUx0SlNMT09HQm9zTUxUdXFyK2J2TUptdWpzY0VOdE9uU1N5TmZsVlA2aUlt?= =?utf-8?B?UkRqNUtjaUJCWm5BS1kwS1dLcy9QVFpPWkc4aXRob1VsZDhGNGY3bGg3MGdI?= =?utf-8?B?Uk9GYzZDSXpydkVndUgxZkE2cjF6K0hRMDJaL3psaUI0WUhYNm9WNWMxTVU1?= =?utf-8?B?K2cwdy9lNTU1cUxKZnNISGs1VzV1VStBSXFjVWdZOFp0MURxRDFvSkpqVWlm?= =?utf-8?B?dFZiS1JYdWxaYXJrd21XM2g0NHFzbXk0OFczVXpSUllmcm1YWERmRURYeTJ1?= =?utf-8?B?L25XMDVsZWRwelBMNTcydTZQZUE1K2FHMm5oeEZ4V29GM0pVdTAyYmZrVStl?= =?utf-8?B?OE1nZWdoMDBzM0pKS2FZQ1BBRHFtUnFua1lxZTVtdm1OMlhKOERQVEw2clV5?= =?utf-8?B?cXZkM0gwTGhFcHg4WUo0MnhKb3p6RmJRbkpzVDNiUzFWQnJiU0lVNlRnakRX?= =?utf-8?B?a00xRkFsOXpWdWppTE1nWjZDNFhucG5lWmc0U0JkVm1ScUZJSDhFcFpMWC9M?= =?utf-8?B?R1UxQUJxQ0g3a01zN1d1ZlNHTEpJUHhidTREbHIwUTRqWUVxTmI2WjU3eXdW?= =?utf-8?B?T0F0WFZrNnFtak9IZS9lV05BVXNCSThwaVRMTEdTOVF5M2xMcnVzcFRjWlZ1?= =?utf-8?B?ZWloYmNhL0h5MmRlNnVXeVBnNk56RG0yWGF2Q2Z4SVFmOWM3akpITGNWc0Jp?= =?utf-8?B?NFQ2WlRjM3BqVXV0SC9MSnJuNlZRUXFZR1c1T2VkVjFvWTVPVEQ3enpSZUNa?= =?utf-8?B?Sm5NakE1YzNoWTF1WlpNWUt4RGZOSDBBVlphdmROeWFVR253d0lxT3Brb0Ru?= =?utf-8?B?a1ZiYi9xOEhaRzNmNG9OZ21lY1F3NXdTNWdqSG9MREJYTHpTQWIzWUt1ZXUy?= =?utf-8?B?WGVUVzg1eWRVRVVYTG9kc0tSaFpSTWhXQjJEdEpTRllVOXNxNnc3d2ZrZXBh?= =?utf-8?B?bkxiU0lJT3pxbEVqNEp3ZkdKekJoWWlnSy9NR0pqeGxRVTkrc3dyRDlSVEtY?= =?utf-8?B?d1RuclFZbU1hemJJQWMrb2MvY3RjWUlIdFFsem9nS3lKNmlvUmFFemIvc0xo?= =?utf-8?B?SzZnM3BVdzcyblF3REozR3lSd1hMczNkYkp5VEJKL3FlZ3lMY0VMOWh2VU9j?= =?utf-8?B?WDZXaFBSc0psM3lOTFpiVkwxc3RUYnlGWkMxM2ttMnVZQytmd0hyRkFRamVM?= =?utf-8?B?TjJtNGNQdWR6OEFWTEJsWFdpbXZkNkM0ZWorMTluOHozblpwT3dwSHpiaWZh?= =?utf-8?B?NHVHRWdSUEcvUVk0aFNSNDhQeTFJbWdzUVgxbXpjNFN2aGxQQVdDYjdJN0Rq?= =?utf-8?B?VVdiWjRlaHZrc2laeWJxc3c5T0ZWRGZjSnZHanNwalUvMkczZnlKaklkSWlO?= =?utf-8?B?MFRTSUNGYnU3V21ONy9FVWZCMEhCSHk3ZlRra3Q1QlZyendVbURXSEUzNjhS?= =?utf-8?B?d3IwbnlESStUOTk4bkhJZFdLd1JxUE9VMFQyUjRFRjZyMkVHUThBNExiNnRD?= =?utf-8?B?UjV4QzgxUWF0blgzeFdOcXlZNXFub2REa1hvVzRpUXpNZzVKWndpRW5BcFds?= =?utf-8?B?bGlZNHdHZWJzYjk2SnV0aDZpaDBTbU8rc1poTHFBL1ZocmwvMlU1V21JZEta?= =?utf-8?B?S0NlbFVoYjFlL2Q1dWhmOGpxN1ZZcWlKV3NNdW83QlJqQTlzUnN2dUVJTFZX?= =?utf-8?B?SjgzSXN4V29obTNsbVVoTDBsOWZ3NEw3UERqVjI4RllXUmh1dXBpejM4RmNs?= =?utf-8?B?bW5oOUVpbnEzakc2cGNqSEZxOWpPa0U5MzY5TzFEZkJ3OEZOaE5FSDRFa2Rk?= =?utf-8?B?VmY5K09WZnRaSUh6VWhkRERrclFDMkFVRURTbEt6YWZtMWFkZ2MzOGc4MGxR?= =?utf-8?B?bmY2aFo2R0JSYlNHS1lwSXAxblMrZ3p2eDNaemgrRi9tdmNqeVYwdStCSHk0?= =?utf-8?Q?Kz36aM4glkyOipbg=3D?= Content-ID: <7784AD65438A9C4196A9E47149C40819@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH0PR11MB5507.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2afb242-fafd-43bd-bb3d-08da299fa23a X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2022 05:18:02.4018 (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: dJ/Tz8jMptTtcOP44uN0g16sBdSwEqfE0KCoN/s0fCvN5fc5Oh0sHURNRvW8aXgq3TvrSTsCKWUJufXZRMyV1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR11MB4008 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: "Wang, Fei W" , "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: 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 > + > 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".