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 1C3D8423C8 for ; Mon, 17 Jan 2022 10:57:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 29F5F68AFA4; Mon, 17 Jan 2022 12:57:40 +0200 (EET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11olkn2097.outbound.protection.outlook.com [40.92.20.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6768368AF7A for ; Mon, 17 Jan 2022 12:57:34 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HmTJqBvXoSq1eSJfGteKxt+Ltk+wSDEb21hAB9srfzEp7cc8oYOtF1ceCuHQDOYdqjXnljztoCqPjyUzpuxEIx6sis4IKevlyzoGZ7e7KPfbYNr4cMI8ggeddKLGPLwcZyqOi6niv19JZotf1o1+/6EYwx7cvMUxo0jsRs4DCVpXGLiuQOgTtoJ464/yN5Nku1RhmKXNMdhc38Rod/YizO1vwFR0LxL1j8fxO9nyj6lZzoRPyq4i9mbMcg68wvdQhpsbNTskBNlpQHT4NA/glKQYfl+zZqGNlxpeQv/j/X49bIqmoc/s9h8wIa+BvS/RUj4UcBeAA8witFnlEsRefg== 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=r/216tqmFjwVB0kncEHVol7XOwueSzSFW9TYt6DSYbk=; b=UixwmoyICxtJrGW3RdvWmf4y470f/+ZahUNX4FtiFDUDdAYfN8/ikE73d5sYqe9xB/paFtof0xJUARjWZrcWAPGyrqe3ZYZuDk49AZR7qGTrwEqWU80iYcoBAHZ+FNyYhSAdzhkN5SPseMMSqmOTlL+RjR/YdkEON+aX3lIIHiSAewBxqSVkubzx6ZlyETzaIbxhAnO5h/vOr6Glg2rkmOXEJ/MUApV/m+a8yzrbOA+MbZpybm1qBPRh/ed4uSpMGK5cvSkRVbjgk/HVGWrfDjPmhWN93JYzxcYOljE9yVUA9cu40q8Ylh74PqIlz8vW3tEYbpI+AyTokgt7CrS9pw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r/216tqmFjwVB0kncEHVol7XOwueSzSFW9TYt6DSYbk=; b=eqiWtVtwtiB6uzKh6hFeyt3ZLDwIQstEDnuBjPHSjSpuLAOcquIqLO84Rvys/LXdwa++ln95ZUHYEwC5WWYnChGsrF/EV8LaN6KJcUP34CTKljURWv91CTRcHFuNw/ByxRjiZdAucYNz5DChRRjJSLJCf2zqDg+yZflB5k18X5lD4FEG1ii4o++Mtm8WT+xZNcIEhu09/nMe752B076/IH0Cg/3wDMFh/JytubIStu6kiKMaAAcvnlI3jxhGYrTLksdqEHqR3O4YLoiw6pecOcAqa19iXsdofBbNG9W9DThsn55NOFW6zwhL5qifa2LCnb8lwHhJ4NCmgqZsj99wvg== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by BL3P223MB0012.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:34b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Mon, 17 Jan 2022 10:57:31 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::54ae:66eb:e304:96d6]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::54ae:66eb:e304:96d6%7]) with mapi id 15.20.4888.014; Mon, 17 Jan 2022 10:57:30 +0000 From: Soft Works To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v2] lavc/qsvenc: add tile encoding support for VP9 Thread-Index: AQHYCEDYeiEIbghTbUSSXULmhCPyiaxm6FMAgAAjOoCAAAPMkA== Date: Mon, 17 Jan 2022 10:57:30 +0000 Message-ID: References: <20220113054525.14057-1-haihao.xiang@intel.com> <2de74c97e30007697825af8d68df3fdf5270350c.camel@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-tmn: [WW0StRwufyq8I2LiioTsBkbOf3T/oNvP] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d4807b0c-668f-4f7d-3dc7-08d9d9a828ae x-ms-traffictypediagnostic: BL3P223MB0012:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6GCweUw1zojaoXE8b0OxNaEyveF0xs1S8vR/+YibMbNCLgvTSH9G6OiE7k9jkU9S4A6WigxgwLk4sgGtuXCtXRUahHsscwO+73NkLbfks1aYZLGE41UNxQYwyNvlR/UZpoOCOPzlDVqmGrlQnZWGgK8II1cBQPjuDPhknlz2oikENvYSPnIPVGk/sAHLZYXdEts2iZLCj7XhbWrFninkR3aZfykekzNqoUc+lZNtCYd0kZi00lOBLfArvVMBB+1kJw+WwO+8huOwxxKrX9xv7bDi57EsyZbDmzZMF6KiN81teVPmuoRAD/dloRD4UryYraW6+dRS8+3T6pIi2xJrmvIYGdDmlDfnMxiuVL0ZOzxNVHXukwTYBn5cdAiUcnYYgIK1wE0xKt15H7Dd4so7tVvJNrFk3khJ//bNe9ao8GCOZTH9fqn9A7K9umMj2V/urvYBiqWfTLhk9a4RXfPKkbgKjEYA7OwYClZ72nCtZT+APOcda2wy5iZsHzykdgl+1A5bib7+FYbo8tit5VuhzZg94EgYIHxI0iRAKEPF73LtEj9TkFsFiAe1g+T86Jl+pf9o+iSXRh0aGKlIBdWayw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bmp5UHQ0VUpNOStHSlNseGZDWmVtV2pJbEFPUXd5bmE3N0hsdExKM1JUT0hP?= =?utf-8?B?UWo3eGtPZjJ1NStqMnF6VFdmYlNKRVVSVXQ4cHd4Zy9mcU5YWjNKK1RJNDJ1?= =?utf-8?B?UTFxOUU3N0JjdFFCd3lVRkI2akRmSHhKaDg2OEFrRzlsdlI1a1ErSXRqd1o3?= =?utf-8?B?UEg0SG9vRGlUN0FxSTVFeTlkZzZIbWM1WkVQaVdORXRMYjNFOEtxdnVVTk5D?= =?utf-8?B?QUR0NzJQM0JiL25mdHRsWVVFVlVzbTVYbTBHRXdkOTMwSkhQbGJQNVd5cGpj?= =?utf-8?B?VVpXMkFCQXJaOGVwZnpIR2QrL215Wk41Yzk4UzB4cUlRSWJZcE9zUDNLeHg5?= =?utf-8?B?U3IwRW0rOG5ndjkxdkZKZHk0bmhyQVNOU1ZQTnk4dlhKanpNdDN2ako2Q05t?= =?utf-8?B?MGFJNlpWeVdmdHhwVzBxVEJ6ZWE1TXlVaXg2bVNDcTJBckszOG42Qi90ejRk?= =?utf-8?B?SHhtSllNQ09GZFFnRDFKM2trMTNHdHhMM0tYcEN2TlJPYU5UZ0VKdCt2eU16?= =?utf-8?B?WnlLTU5MYS8zSmE3M0dDTzVBTWMvWURiZm1vdzcraWl5SzBieUJKeGE3eFMy?= =?utf-8?B?bG1qTkIwcm5WaXBZcEtUMFVmOWNTUmk5TVpPVExuVVNSUnlSM2FFckVIMGhD?= =?utf-8?B?RGdyWlp5V21rVlp2ODQ5b09UUzUyYVp0Zi9UajlpZUEvdzE5R3d6cnVja0Iw?= =?utf-8?B?cnBkMzBiSzJKQ1ZCWHQwc2FqOSs0eWtzWFRSSXVTSjBWdS9TRUN0RW04OUtx?= =?utf-8?B?K1h1a3M3MncwRmJMeEpQNTVROEY4dlRWam9BUGwycm9tQWI3Rm1KOVBUZHl3?= =?utf-8?B?WWdyN3g1bE1wSjdGUEp1VEtoOFZ3ekVIVFh5bDNsY3l4ZXIyUFlWZVJkcm81?= =?utf-8?B?R0tUVWNScWJpeFIwVWFOZE5PSDBqTysxQmoxbG5iVDZpNjZ0dElIUnBoU2tu?= =?utf-8?B?cU9vTjlGbEJ2YmZzVTFTR1BsRC9TaWFBck9aUjhQdHF0NFlmRUtleXVlYjFJ?= =?utf-8?B?UDdNV2JNTDFoNjNTbGdkNFJWNGRxQXArZGV6ckdGcEhUOXhIck1vY1pHLzEv?= =?utf-8?B?eEtlL0U5VFRYL2xuWnQ1Ui9OQWFzT0xFT0VuTUF6NVpBNDZoTjcrSk1OeVh3?= =?utf-8?B?amd6NU92czc3UW9tQ0NtRU1yUDRpcnVxVTFYNEY3RG9SbXRzVnNNZm0ybG9F?= =?utf-8?B?WERya0N1Wlp2ZjVya3RLdUtLL3VkR2srd0FpS2lHOEovQ3FKRzFGTTU2Yjha?= =?utf-8?B?TFc2cGlUYldFVVlrTnNpZmh3OGJZWHhldTdzN0xTbStTVmEwUT09?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-1ff67.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: d4807b0c-668f-4f7d-3dc7-08d9d9a828ae X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 10:57:30.9408 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3P223MB0012 Subject: Re: [FFmpeg-devel] [PATCH v2] lavc/qsvenc: add tile encoding support for VP9 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of > mypopy@gmail.com > Sent: Monday, January 17, 2022 11:36 AM > To: FFmpeg development discussions and patches > Subject: Re: [FFmpeg-devel] [PATCH v2] lavc/qsvenc: add tile encoding support > for VP9 > > On Mon, Jan 17, 2022 at 4:30 PM Xiang, Haihao > wrote: > > > > On Thu, 2022-01-13 at 13:45 +0800, Haihao Xiang wrote: > > > Add -tile_rows and -tile_cols options to specify the number of tile > > > rows and columns > > > > > > Signed-off-by: Haihao Xiang > > > --- > > > v2: add option descriptions in the doc > > > > > > doc/encoders.texi | 6 ++++++ > > > libavcodec/qsvenc.c | 4 ++++ > > > libavcodec/qsvenc.h | 1 + > > > libavcodec/qsvenc_vp9.c | 10 ++++++++++ > > > 4 files changed, 21 insertions(+) > > > > > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > > index 7cc8be1209..a4176089d5 100644 > > > --- a/doc/encoders.texi > > > +++ b/doc/encoders.texi > > > @@ -3457,6 +3457,12 @@ These options are used by vp9_qsv > > > @item profile2 > > > @item profile3 > > > @end table > > > + > > > +@item @var{tile_cols} > > > +Number of columns for tiled encoding (requires libmfx >= 1.29). > > > + > > > +@item @var{tile_rows} > > > +Number of rows for tiled encoding (requires libmfx >= 1.29). > > > @end table > > > > > > @section snow > > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > > > index 4e7a15f060..4cbc9ff4dc 100644 > > > --- a/libavcodec/qsvenc.c > > > +++ b/libavcodec/qsvenc.c > > > @@ -939,6 +939,10 @@ static int init_video_param(AVCodecContext *avctx, > > > QSVEncContext *q) > > > q->extvp9param.Header.BufferId = MFX_EXTBUFF_VP9_PARAM; > > > q->extvp9param.Header.BufferSz = sizeof(q->extvp9param); > > > q->extvp9param.WriteIVFHeaders = MFX_CODINGOPTION_OFF; > > > +#if QSV_HAVE_EXT_VP9_TILES > > > + q->extvp9param.NumTileColumns = q->tile_cols; > > > + q->extvp9param.NumTileRows = q->tile_rows; > > > +#endif > > > q->extparam_internal[q->nb_extparam_internal++] = (mfxExtBuffer > *)&q- > > > >extvp9param; > > > } > > > #endif > > > diff --git a/libavcodec/qsvenc.h b/libavcodec/qsvenc.h > > > index 31516b8e55..00ee52a5d1 100644 > > > --- a/libavcodec/qsvenc.h > > > +++ b/libavcodec/qsvenc.h > > > @@ -41,6 +41,7 @@ > > > > > > #define QSV_HAVE_EXT_HEVC_TILES QSV_VERSION_ATLEAST(1, 13) > > > #define QSV_HAVE_EXT_VP9_PARAM QSV_VERSION_ATLEAST(1, 26) > > > +#define QSV_HAVE_EXT_VP9_TILES QSV_VERSION_ATLEAST(1, 29) > > > > > > #define QSV_HAVE_TRELLIS QSV_VERSION_ATLEAST(1, 8) > > > #define QSV_HAVE_MAX_SLICE_SIZE QSV_VERSION_ATLEAST(1, 9) > > > diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c > > > index 9329990d11..1168ddda0e 100644 > > > --- a/libavcodec/qsvenc_vp9.c > > > +++ b/libavcodec/qsvenc_vp9.c > > > @@ -73,6 +73,16 @@ static const AVOption options[] = { > > > { "profile2", NULL, 0, AV_OPT_TYPE_CONST, { .i64 > = > > > MFX_PROFILE_VP9_2 }, INT_MIN, INT_MAX, VE, "profile" }, > > > { "profile3", NULL, 0, AV_OPT_TYPE_CONST, { .i64 > = > > > MFX_PROFILE_VP9_3 }, INT_MIN, INT_MAX, VE, "profile" }, > > > > > > +#if QSV_HAVE_EXT_VP9_TILES > > > + /* The minimum tile width in luma pixels is 256, set maximum > tile_cols to > > > 32 for 8K video */ > > > + { "tile_cols", "Number of columns for tiled > > > encoding", OFFSET(qsv.tile_cols), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, > 32, > > > VE }, > > > + /* Set maximum tile_rows to 4 per VP9 spec */ > > > + { "tile_rows", "Number of rows for tiled > > > encoding", OFFSET(qsv.tile_rows), AV_OPT_TYPE_INT, { .i64 = 0 }, > 0, 4, > > > VE }, > > > +#else > > > + { "tile_cols", "(not > > > supported)", OFFSET(qsv.tile_cols), > AV_OPT_TYPE_INT, > > > { .i64 = 0 }, 0, 0, VE }, > > > + { "tile_rows", "(not > > > supported)", OFFSET(qsv.tile_rows), > AV_OPT_TYPE_INT, > > > { .i64 = 0 }, 0, 0, VE }, > > > +#endif > > > + > perfer one option like "-tile rows x cols" than two options like The example is invalid. (spaces) > "-tile_rows row -tile_cols col" This way, the options are typed, have min, max and default values, without needing any code to write and maintain. if you mean "-tile rowsxcols", there's no option type for this, unless you would want to mis-use the video size type for it. Otherwise you'd need to make it string and write all the parsing and checking code for it. Do you think that it would be worth the effort? Also, in most use cases, you will probably have rows or cols, rather than both.. sw _______________________________________________ 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".