Re: [FFmpeg-devel] [PATCH WIP v2 1/9] avfilter/dnn: Refactor DNN parameter configuration system

2024-04-29 Thread Chen, Wenbin
> -Original Message- > From: ffmpeg-devel On Behalf Of Zhao > Zhili > Sent: Sunday, April 28, 2024 2:47 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Zhao Zhili > Subject: [FFmpeg-devel] [PATCH WIP v2 1/9] avfilter/dnn: Refactor DNN > parameter configuration system > > From: Zhao Zhili > + >

Re: [FFmpeg-devel] [PATCH WIP 0/9] Refactor DNN

2024-04-29 Thread Chen, Wenbin
> > On Apr 29, 2024, at 18:29, Guo, Yejun > wrote: > > > > > > > >> -Original Message- > >> From: ffmpeg-devel On Behalf Of > Zhao > >> Zhili > >> Sent: Sunday, April 28, 2024 6:55 PM > >> To: FFmpeg development discussions and patches >> de...@ffmpeg.org> > >> Subject: Re:

Re: [FFmpeg-devel] [PATCH WIP 0/9] Refactor DNN

2024-04-28 Thread Chen, Wenbin
> > On Apr 28, 2024, at 18:58, Paul B Mahol wrote: > > > > Extremely low quality filters, both in source code quality and > > performance/security and output quality should be queued for removal. These filters cannot be removed because there are users using them. What are your suggestions to

Re: [FFmpeg-devel] [PATCH v2] doc: Add libtoch backend option to dnn_processing

2024-03-27 Thread Chen, Wenbin
> >> -Original Message- > >> From: ffmpeg-devel On Behalf Of > >> wenbin.chen-at-intel@ffmpeg.org > >> Sent: Monday, March 25, 2024 10:15 AM > >> To: ffmpeg-devel@ffmpeg.org > >> Subject: [FFmpeg-devel] [PATCH v2] doc: Add libtoch backend option to > >> dnn_processing > > Typo in

Re: [FFmpeg-devel] [PATCH] Changelog: Add libtorch

2024-03-20 Thread Chen, Wenbin
> On date Wednesday 2024-03-20 16:01:36 +0800, wenbin.chen-at- > intel@ffmpeg.org wrote: > > From: Wenbin Chen > > > > Signed-off-by: Wenbin Chen > > --- > > Changelog | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/Changelog b/Changelog > > index e3ca52430c..d0c41887f3

Re: [FFmpeg-devel] [PATCH v5] libavfi/dnn: add LibTorch as one of DNN backend

2024-03-14 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > > wenbin.chen-at-intel@ffmpeg.org > > Sent: Monday, March 11, 2024 1:02 PM > > To: ffmpeg-devel@ffmpeg.org > > Subject: [FFmpeg-devel] [PATCH v5] libavfi/dnn: add LibTorch as one of DNN > > backend > > > > From: Wenbin Chen

Re: [FFmpeg-devel] [PATCH v4] libavfi/dnn: add LibTorch as one of DNN backend

2024-03-05 Thread Chen, Wenbin
> > > On Feb 20, 2024, at 7:07 PM, wenbin.chen-at-intel@ffmpeg.org wrote: > > > > From: Wenbin Chen > > > > PyTorch is an open source machine learning framework that accelerates > > the path from research prototyping to production deployment. Official > > website: https://pytorch.org/. We

Re: [FFmpeg-devel] [PATCH v3] libavfi/dnn: add LibTorch as one of DNN backend

2024-02-20 Thread Chen, Wenbin
> Hello, > > On Tue, 20 Feb 2024, at 05:48, wenbin.chen-at-intel@ffmpeg.org wrote: > > From: Wenbin Chen > > > > PyTorch is an open source machine learning framework that accelerates > > OK for me > > > the path from research prototyping to production deployment. Official > > websit:

Re: [FFmpeg-devel] [PATCH v2] libavfi/dnn: add LibTorch as one of DNN backend

2024-02-19 Thread Chen, Wenbin
> > Hello, > > > > On Fri, 2 Feb 2024, at 08:26, wenbin.chen-at-intel@ffmpeg.org wrote: > > > +static void infer_completion_callback(void *args) { > > > +THRequestItem *request = (THRequestItem*)args; > > > +LastLevelTaskItem *lltask = request->lltask; > > > +TaskItem *task =

Re: [FFmpeg-devel] [PATCH v2] libavfi/dnn: add LibTorch as one of DNN backend

2024-02-19 Thread Chen, Wenbin
> Hello, > > On Fri, 2 Feb 2024, at 08:26, wenbin.chen-at-intel@ffmpeg.org wrote: > > +static void infer_completion_callback(void *args) { > > +THRequestItem *request = (THRequestItem*)args; > > +LastLevelTaskItem *lltask = request->lltask; > > +TaskItem *task = lltask->task; > >

Re: [FFmpeg-devel] [PATCH 1/3] swscale: don't assign range converters for float

2024-01-10 Thread Chen, Wenbin
> On Mon, 27 Nov 2023 02:10:11 +0000 "Chen, Wenbin" intel@ffmpeg.org> wrote: > > > > From: Niklas Haas > > > > > > > > This logic was incongruent with logic used elsewhere, where floating > > > > point formats are explici

Re: [FFmpeg-devel] [PATCH 1/3] swscale: don't assign range converters for float

2023-12-11 Thread Chen, Wenbin
> > > From: Niklas Haas > > > > > > This logic was incongruent with logic used elsewhere, where floating > > > point formats are explicitly exempted from range conversion. Fixes an > > > issue where floating point formats were not going through special > > > unscaled converters even when it was

Re: [FFmpeg-devel] [PATCH 1/3] swscale: don't assign range converters for float

2023-11-26 Thread Chen, Wenbin
> > From: Niklas Haas > > > > This logic was incongruent with logic used elsewhere, where floating > > point formats are explicitly exempted from range conversion. Fixes an > > issue where floating point formats were not going through special > > unscaled converters even when it was otherwise

Re: [FFmpeg-devel] [PATCH 1/3] swscale: don't assign range converters for float

2023-11-13 Thread Chen, Wenbin
> From: Niklas Haas > > This logic was incongruent with logic used elsewhere, where floating > point formats are explicitly exempted from range conversion. Fixes an > issue where floating point formats were not going through special > unscaled converters even when it was otherwise possible. >

Re: [FFmpeg-devel] [PATCH v3 1/8] swscale: fix sws_setColorspaceDetails after sws_init_context

2023-11-12 Thread Chen, Wenbin
> > Will apply soon. > Hi Niklas: This patchset causes a regression. The command: "ffmpeg -i input.png -vf format=grayf32,format=gray8 output.png" reports error. If I configure with "--disable-sse2", the error is unseen. Thanks Wenbin > ___ >

Re: [FFmpeg-devel] [PATCH 3/3] libavfilter/dnn: Initialze DNNData variables

2023-09-20 Thread Chen, Wenbin
> > On Sep 20, 2023, at 10:26, wenbin.chen-at-intel@ffmpeg.org wrote: > > > > From: Wenbin Chen > > > > Signed-off-by: Wenbin Chen > > --- > > libavfilter/dnn/dnn_backend_tf.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/libavfilter/dnn/dnn_backend_tf.c >

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Flush cached frames before reset encoder

2023-02-13 Thread Chen, Wenbin
> wenbin.chen-at-intel@ffmpeg.org: > > From: Wenbin Chen > > > > According to https://github.com/Intel-Media- > SDK/MediaSDK/blob/master/doc/mediasdk-man.md#configuration-change. > > Before calling MFXVideoENCODE_Reset, The application needs to retrieve > > any cached frames in the SDK

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Do not pass RGB solorspace to VPL/MSDK

2023-02-13 Thread Chen, Wenbin
> From: Wenbin Chen > > When encode RGB frame, Intel driver convert RGB to YUV, so we cannot > set RGB colorspace to VPL/MSDK. > > Signed-off-by: Wenbin Chen > --- > libavcodec/qsvenc.c | 7 ++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/qsvenc.c

Re: [FFmpeg-devel] [PATCH v2] libavfilter/qsvvpp: Use different alignment for YUV420P format

2022-12-04 Thread Chen, Wenbin
> On Do, 2022-12-01 at 10:48 +0800, wenbin.chen-at-intel@ffmpeg.org > wrote: > > From: Wenbin Chen > > > > When process yuv420 frames, FFmpeg uses same alignment on Y/U/V > > planes. VPL and MSDK use Y plane's pitch / 2 as U/V planes's > > pitch, which makes U/V planes 16-bytes aligned. We

Re: [FFmpeg-devel] [PATCH] libavfilter/qsvvpp: Use different alignment for YUV420P format

2022-11-29 Thread Chen, Wenbin
> On 11/29/2022 5:07 AM, wenbin.chen-at-intel@ffmpeg.org wrote: > > From: Wenbin Chen > > > > When process yuv420 frames, FFmpeg use same alignment on Y/U/V > > planes. VPL and MSDK use Y plane's pitch / 2 as U/V planes's > > pitch, which make U/V planes 16-bytes aligned. We need to set > > a

Re: [FFmpeg-devel] [PATCH] lavc/cbs_av1: restore CodedBitstreamAV1Context when AVERROR(ENOSPC)

2022-09-26 Thread Chen, Wenbin
> From: Haihao Xiang > > The current pbc might be small for an obu frame, so a new pbc is > required then parse this obu frame again. Because > CodedBitstreamAV1Context has already been updated for this obu frame, > we > need to restore CodedBitstreamAV1Context, otherwise >

Re: [FFmpeg-devel] [PATCH 1/2] libavcodec/qsvenc: Let runtime to set default parameter.

2022-09-26 Thread Chen, Wenbin
> Wenbin Chen: > > Unset qsv_h264 and qsv_hevc's default settings. Let runtime to decide > > these parameters, so that it can choose the best parameter and ffmpeg-qsv > > can keep up with runtime's update. > > > > Signed-off-by: Wenbin Chen > > --- > > libavcodec/qsvenc_h264.c | 4 ++-- > >

Re: [FFmpeg-devel] [PATCH v4] libavcodec/cbs_av1: Add size check before parse obu

2022-09-26 Thread Chen, Wenbin
> On Wed, 2022-09-21 at 17:41 +0800, Wenbin Chen wrote: > > cbs_av1_write_obu() check pbc size after parsing obu frame, and return > > AVERROR(ENOSPC) if pbc is small. pbc will be reallocated and this obu > > frame will be parsed again, but this may cause error because > > CodedBitstreamAV1Context

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: fixy typo for min/max qp reset

2022-09-25 Thread Chen, Wenbin
> Fixes: 005c7a4 ("libavcodec/qsvenc: Add max/min qp reset support in > qsvenc") > CC: Wenbin Chen > Signed-off-by: Dmitry Rogozhkin > --- > libavcodec/qsvenc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index

Re: [FFmpeg-devel] [PATCH v3] libavcodec/cbs_av1: Add size check before parse obu

2022-09-21 Thread Chen, Wenbin
> > cbs_av1_write_unit() check pbc size after parsing obu frame, and return > > It is cbs_av1_write_obu(), not cbs_av1_write_unit(), right ? > > Thanks > Haihao > Sorry, it is typo. cbs_av1_write_obu is assigned to write_unit function pointer. I will fix it and resubmit patch. Thanks Wenbin

Re: [FFmpeg-devel] [PATCH 2/6] libavcodec/qsvenc: Add gop_size reset support to qsvenc

2022-09-06 Thread Chen, Wenbin
> On Thu, 2022-08-18 at 14:59 +0800, Wenbin Chen wrote: > > Signed-off-by: Wenbin Chen > > --- > > doc/encoders.texi | 3 +++ > > libavcodec/qsvenc.c | 18 +- > > libavcodec/qsvenc.h | 2 ++ > > 3 files changed, 22 insertions(+), 1 deletion(-) > > > > diff --git

Re: [FFmpeg-devel] [PATCH v3] libavcodec/cbs_av1: Add size check before parse obu

2022-09-05 Thread Chen, Wenbin
> > cbs_av1_write_unit() check pbc size after parsing obu frame, and return > > AVERROR(ENOSPC) if pbc is small. pbc will be reallocated and this obu > > frame will be parsed again, but this may cause error because > > CodedBitstreamAV1Context has already been updated, for example > >

Re: [FFmpeg-devel] [PATCH v3] libavcodec/cbs_av1: Add size check before parse obu

2022-08-23 Thread Chen, Wenbin
> cbs_av1_write_unit() check pbc size after parsing obu frame, and return > AVERROR(ENOSPC) if pbc is small. pbc will be reallocated and this obu > frame will be parsed again, but this may cause error because > CodedBitstreamAV1Context has already been updated, for example > ref_order_hint is

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Use parameter from AVCodecContext to reset qsv codec

2022-07-13 Thread Chen, Wenbin
> Using parameter from AVCodecContext to reset qsv codec is more suitable > for MFXVideoENCODE_Reset()'s usage. Per-frame metadata is more suitable > for the usage of mfxEncodeCtrl being passed to > MFXVideoENCODE_EncodeFrameAsync(). Now change it to use the value > from AVCodecContext. > >

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Fix a log format issue

2022-07-07 Thread Chen, Wenbin
> > On Jul 7, 2022, at 1:57 PM, Wenbin Chen intel@ffmpeg.org> wrote: > > > > Add a line feed to fix a log format issue. > > > > Signed-off-by: Wenbin Chen > > --- > > libavcodec/qsvenc.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c >

Re: [FFmpeg-devel] [PATCH v3] libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtime

2022-07-04 Thread Chen, Wenbin
> Quoting Chen, Wenbin (2022-07-04 08:33:49) > > > Why is this using frame metadata rather than the AVVideoEncParams > side > > > data? > > > > The usage of AVVideoEncParams relates to the "qp" variable in > mfxEncodeCtrl which is passed > &g

Re: [FFmpeg-devel] [PATCH v3] libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtime

2022-07-04 Thread Chen, Wenbin
> Quoting Wenbin Chen (2022-06-23 07:32:42) > > From: Yue Heng > > > > Enable dynamic QP configuration in runtime on qsv encoder. Through > > AVFrame->metadata, we can set key "qsv_config_qp" to change QP > > configuration when we encode video in CQP mode. > > > > Signed-off-by: Yue Heng > >

Re: [FFmpeg-devel] [PATCH] libavcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb()

2022-07-03 Thread Chen, Wenbin
> On Fri, Jul 01, 2022 at 01:34:34PM +0800, Wenbin Chen wrote: > > For 422 frames we should not use hard coded 8 to calculate mb size for > > uv plane. Chroma shift should be taken into consideration to be > > compatiple with different sampling format. > > > > The error is reported by fate test

Re: [FFmpeg-devel] [PATCH] libavcodec/mpegvideo_enc: Fix a chroma mb size error in sse_mb()

2022-07-01 Thread Chen, Wenbin
> On Fri, Jul 1, 2022 at 10:00 AM Xiang, Haihao < > haihao.xiang-at-intel@ffmpeg.org> wrote: > > > On Fri, 2022-07-01 at 13:34 +0800, Wenbin Chen wrote: > > > For 422 frames we should not use hard coded 8 to calculate mb size for > > > uv plane. Chroma shift should be taken into consideration

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtime

2022-06-21 Thread Chen, Wenbin
> On Wed, 2022-06-15 at 15:25 +0800, Wenbin Chen wrote: > > From: Yue Heng > > > > Enable dynamic QP configuration in runtime on qsv encoder. Through > > AVFrame->metadata, we can set key "qsv_config_qp" to change QP > > configuration when we encode video in CQP mode. > > > > Signed-off-by: Yue

Re: [FFmpeg-devel] [PATCH v3] libavcodec/qsvenc: add ROI support to qsv encoder

2022-06-07 Thread Chen, Wenbin
> Use The mfxEncoderCtrl parameter to enable ROI. Get side data > "AVRegionOfInterest" and use it to configure "mfxExtEncoderROI" which is > the MediaSDK's ROI configuration. > > Signed-off-by: Wenbin Chen > --- > libavcodec/qsv_internal.h | 4 ++ > libavcodec/qsvenc.c | 86 >

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: add ROI support to qsv encoder

2022-06-01 Thread Chen, Wenbin
> On Fri, 2022-05-06 at 13:49 +0800, Wenbin Chen wrote: > > Use the mfxEncoderCtrl parameter to enable ROI. Get side data > > "AVRegionOfInterest" > > from filter "addroi" and use it to configure "mfxExtEncoderROI" which is > > the MediaSDK's ROI configuration. > > > > Signed-off-by: Wenbin Chen

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc: Add min/max QP control options for I/P/B frame

2022-05-25 Thread Chen, Wenbin
> On Fri, 2022-05-06 at 10:19 +0800, Wenbin Chen wrote: > > From: Yue Heng > > > > To do more accurate QP control, add min/max QP control on I/P/B frame > > separately to qsv encoder. qmax and qmin still work but newly-added > > options have higher priority. > > > > Signed-off-by: Yue Heng > >

Re: [FFmpeg-devel] [PATCH v2] libavcodec/cbs_av1: Add size check before parse obu

2022-05-04 Thread Chen, Wenbin
> On 29/03/2022 09:29, Wenbin Chen wrote: > > cbs_av1_write_unit() check pbc size after parsing obu frame, and return > > AVERROR(ENOSPC) if pbc is small. pbc will be reallocated and this obu > > frame will be parsed again, but this may cause error because > > CodedBitstreamAV1Context has already

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvdec.c: extract frame packing arrangement data

2022-04-27 Thread Chen, Wenbin
> On Tue, 2022-04-26 at 18:00 +0800, Wenbin Chen wrote: > > Use h264_sei to parse SEI data got from MediaSDK. Extract frame > > packing arrangement information from SEI data and config AVStereo3D > > side data for decoded frame. > > > > Signed-off-by: Wenbin Chen > > Signed-off-by: Tong Wu > >

Re: [FFmpeg-devel] [PATCH v2 1/2] libavcodec/qsvdec: Add more pixel format support to qsvdec

2022-04-06 Thread Chen, Wenbin
> On Sat, 2022-04-02 at 17:35 +0800, Wenbin Chen wrote: > > Qsv decoder only supports directly output nv12 and p010 to system > > memory. For other format, we need to download frame from qsv format > > to system memory. Now add other supported format to qsvdec. > > > > Signed-off-by: Wenbin Chen

Re: [FFmpeg-devel] [PATCH 1/2] libavcodec/qsvdec: Add more pixel format support to qsvdec

2022-04-02 Thread Chen, Wenbin
> On Wed, 2022-03-30 at 14:43 +0800, Wenbin Chen wrote: > > Qsv decoder only supports directly output nv12 and p010 to system > > memory. For other format, we need to download frame from qsv format > > to system memory. Now add other supported format to qsvdec. > > > > Signed-off-by: Wenbin Chen

Re: [FFmpeg-devel] [PATCH v2] libavcodec/qsvenc_hevc: encode RGB format rawvideo

2022-02-17 Thread Chen, Wenbin
> On Tue, 2022-02-15 at 15:00 +0800, Wenbin Chen wrote: > > Add support for hevc_qsv to input RGB format frame. It will > > transform frame to yuv inside MediaSDK instead of using auto > > scale. Now hevc_qsv supports directly encoding BGRA and X2RGB10 > > format. X2RGB10 is only supported in

Re: [FFmpeg-devel] [PATCH] libavcodec/qsvenc_hevc: encode RGB format rawvideo

2022-02-14 Thread Chen, Wenbin
> Wenbin Chen: > > Add support for hevc_qsv to input RGB format frame. It will > > transform frame to yuv inside MediaSDK instead of using auto > > scale. Now hevc_qsv supports directly encoding BGRA and X2RGB10 > > format. X2RGB10 is only supported in VDENC (-low_power 1). > > The X2RGB10

Re: [FFmpeg-devel] [PATCH V3 1/3] libavcodec/vaapi_encode: Add new API adaption to vaapi_encode

2022-02-10 Thread Chen, Wenbin
> On Tue, 2022-02-08 at 11:05 +0800, Wenbin Chen wrote: > > Add vaSyncBuffer to VAAPI encoder. Old version API vaSyncSurface wait > > surface to complete. When surface is used for multiple operation, it > > waits all operations to finish. vaSyncBuffer only wait one channel to > > finish. > > > >

Re: [FFmpeg-devel] [PATCH V3 3/3] libavcodec/vaapi_encode: Add async_depth to vaapi_encoder to increase performance

2022-02-08 Thread Chen, Wenbin
> Add async_depth to increase encoder's performance. Reuse encode_fifo as > async buffer. Encoder puts all reordered frame to HW and then check > fifo size. If fifo < async_depth and the top frame is not ready, it will > return AVERROR(EAGAIN) to require more frames. > > 1080p transcoding (no B

Re: [FFmpeg-devel] [PATCH V2 2/3] libavcodec/vaapi_encode: Change the way to call async to increase performance

2022-02-06 Thread Chen, Wenbin
> On Wed, 2022-01-05 at 10:48 +0800, Wenbin Chen wrote: > > Fix: #7706. After commit 5fdcf85bbffe7451c2, vaapi encoder's performance > > decrease. The reason is that vaRenderPicture() and vaSyncBuffer() are > > called at the same time (vaRenderPicture() always followed by a > > vaSyncBuffer()).

Re: [FFmpeg-devel] [PATCH 3/3] libavcodec/qsvenc: Add intra refresh to hevc_qsv and add new intra refresh parameter

2022-01-24 Thread Chen, Wenbin
> On Mon, 2022-01-24 at 10:59 +0800, Wenbin Chen wrote: > > Add intra refresh support to hevc_qsv as well. > > Add an new intra refresh type: "horizontal", and an new param > > ref_cycle_dist. This param specify the distance between the > > beginnings of the intra-refresh cycles in frames. > > > >

Re: [FFmpeg-devel] [PATCH V5 1/2] libavcodec/vaapi_decode: fix the problem that init_pool_size < nb_surface

2022-01-19 Thread Chen, Wenbin
> For vaapi if the init_pool_size is not zero, the pool size is fixed. > This means max surfaces is init_pool_size, but when mapping vaapi > frame to qsv frame, the init_pool_size < nb_surface. The cause is that > vaapi_decode_make_config() config the init_pool_size and it is called > twice. The

Re: [FFmpeg-devel] [PATCH V5 2/2] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2022-01-19 Thread Chen, Wenbin
> From: nyanmisaka > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > Now the following commandline works: > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va - > filter_hw_device ocl \ >

Re: [FFmpeg-devel] [PATCH V3 4/4] libavcodec/qsvenc: Add transform skip to hevc_qsv

2022-01-13 Thread Chen, Wenbin
> On Thu, 2022-01-13 at 13:12 +0800, Wenbin Chen wrote: > > Add transform_skip option to hevc_qsv. By enabling this option, > > the transform_skip_enabled_flag in PPS will be set to 1. > > This option is supported on the platform equal or newer than CNL. > > > > Signed-off-by: Wenbin Chen > > ---

Re: [FFmpeg-devel] [PATCH V3 2/4] libavcodec/qsvenc: Add DisableDeblockingIdc support to qsv

2022-01-13 Thread Chen, Wenbin
> On Thu, 2022-01-13 at 13:12 +0800, Wenbin Chen wrote: > > Add dblk_idc option to 264_qsv and hevc_qsv. Turining on this opion can > > disable deblocking. > > > > Signed-off-by: Wenbin Chen > > --- > > doc/encoders.texi | 6 ++ > > libavcodec/qsvenc.c | 8 > > libavcodec/qsvenc.h

Re: [FFmpeg-devel] [PATCH V2] libavcodec/qsvenc: Add DisableDeblockingIdc support to qsv

2022-01-12 Thread Chen, Wenbin
> On Wed, 2022-01-12 at 13:28 +0800, Wenbin Chen wrote: > > Add dblk_idc option to 264_qsv and hevc_qsv. Turining on this opion can > > disable deblocking. > > > > Signed-off-by: Wenbin Chen > > --- > > doc/encoders.texi | 6 ++ > > libavcodec/qsvenc.c | 8 > > libavcodec/qsvenc.h

Re: [FFmpeg-devel] [PATCH V4 2/2] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2022-01-10 Thread Chen, Wenbin
> On Fri, 2022-01-07 at 15:36 +0800, Wenbin Chen wrote: > > From: nyanmisaka > > > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > > Now the following commandline works: > > > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > > -init_hw_device

Re: [FFmpeg-devel] [PATCH V2 2/3] libavcodec/vaapi_encode: Change the way to call async to increase performance

2022-01-04 Thread Chen, Wenbin
> Wenbin Chen: > > Fix: #7706. After commit 5fdcf85bbffe7451c2, vaapi encoder's performance > > decrease. The reason is that vaRenderPicture() and vaSyncBuffer() are > > called at the same time (vaRenderPicture() always followed by a > > vaSyncBuffer()). When we encode stream with B frames, we

Re: [FFmpeg-devel] [FFmpeg-cvslog] libavutil/hwcontext_vaapi: Add a new nv12 format map to support vulkan frame

2021-12-27 Thread Chen, Wenbin
> On 10/12/2021 16:05, Wenbin Chen wrote: > > ffmpeg | branch: master | Wenbin Chen | Tue > Dec 7 17:05:50 2021 +0800| [f3c9847c2754b7a43eb721c95e356a53085c2491] > | committer: Lynne > > > > libavutil/hwcontext_vaapi: Add a new nv12 format map to support vulkan > frame > > > > Vulkan will map

Re: [FFmpeg-devel] [PATCH 1/3] libavcodec/vaapi_encode: Change the way to call async to increase performance

2021-12-27 Thread Chen, Wenbin
> On 27/10/2021 09:57, Wenbin Chen wrote: > > Fix: #7706. After commit 5fdcf85bbffe7451c2, vaapi encoder's performance > > decrease. The reason is that vaRenderPicture() and vaSyncSurface() are > > called at the same time (vaRenderPicture() always followed by a > > vaSyncSurface()). When we encode

Re: [FFmpeg-devel] [PATCH 1/3] libavcodec/vaapi_encode: Change the way to call async to increase performance

2021-12-26 Thread Chen, Wenbin
> On Wed, 2021-10-27 at 16:57 +0800, Wenbin Chen wrote: > > Fix: #7706. After commit 5fdcf85bbffe7451c2, vaapi encoder's performance > > decrease. The reason is that vaRenderPicture() and vaSyncSurface() are > > called at the same time (vaRenderPicture() always followed by a > > vaSyncSurface()).

Re: [FFmpeg-devel] [PATCH V3 2/2] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2021-12-26 Thread Chen, Wenbin
> On Fri, 2021-12-10 at 13:38 +0800, Wenbin Chen wrote: > > From: nyanmisaka > > > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > > Now the following commandline works: > > > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > > -init_hw_device

Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: clean padding when upload qsv frames

2021-12-13 Thread Chen, Wenbin
> On Thu, 2021-12-02 at 15:40 +0800, Wenbin Chen wrote: > > When we upload a frame that is not padded as MSDK requires, we create a > > new AVFrame to copy data. The frame's padding data is uninitialized so > > it brings run to run problem. For example, If we run the following > > command serveral

Re: [FFmpeg-devel] [PATCH] libavfilter/vf_overlay_qsv: Use format of first input to set output format for overlay_qsv

2021-12-13 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > Wenbin Chen > > Sent: Friday, December 10, 2021 3:22 AM > > To: ffmpeg-devel@ffmpeg.org > > Cc: Wenbin Chen > > Subject: [FFmpeg-devel] [PATCH] libavfilter/vf_overlay_qsv: Use format of > > first input to set output format for

Re: [FFmpeg-devel] [PATCH] libavfilter/vf_overlay_qsv: Use format of first input to set output format for overlay_qsv

2021-12-13 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > Wenbin Chen > > Sent: Friday, December 10, 2021 3:22 AM > > To: ffmpeg-devel@ffmpeg.org > > Cc: Wenbin Chen > > Subject: [FFmpeg-devel] [PATCH] libavfilter/vf_overlay_qsv: Use format of > > first input to set output format for

Re: [FFmpeg-devel] [PATCH V6 5/5] libavutil/hwcontext_vulkan: specify the modifier to create VKImage

2021-12-13 Thread Chen, Wenbin
> 7 Dec 2021, 10:05 by wenbin.c...@intel.com: > > > When vulkan image exports to drm, the tilling need to be > > VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. Now add code to > create vulkan > > image using this format. > > > > Now the following command line works: > > > > ffmpeg -hwaccel vaapi

Re: [FFmpeg-devel] [PATCH V2 1/3] libavcodec/vaapi_decode: fix the problem that init_pool_size < nb_surface

2021-12-09 Thread Chen, Wenbin
> Quoting Wenbin Chen (2021-11-30 09:44:04) > > For vaapi if the init_pool_size is not zero, the pool size is fixed. > > This means max surfaces is init_pool_size, but when mapping vaapi > > frame to qsv frame, the init_pool_size < nb_surface. The cause is that > > vaapi_decode_make_config()

Re: [FFmpeg-devel] [PATCH V5 5/5] libavutil/hwcontext_vulkan: specify the modifier to create VKImage

2021-12-05 Thread Chen, Wenbin
> 2 Dec 2021, 02:43 by wenbin.c...@intel.com: > > > When vulkan image exports to drm, the tilling need to be > > VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. Now add code to > create vulkan > > image using this format. > > > > Now the following command line works: > > > > ffmpeg -hwaccel vaapi

Re: [FFmpeg-devel] [PATCH V5 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-12-03 Thread Chen, Wenbin
> 2 Dec 2021, 02:53 by wenbin.c...@intel.com: > > >> The vaapi can import external frame, but the planes of the external > >> frames should be in the same drm object. A new option > "contiguous_planes" > >> is added to device. This flag tells device to allocate places in one > >> memory. When

Re: [FFmpeg-devel] [PATCH V5 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-12-01 Thread Chen, Wenbin
> The vaapi can import external frame, but the planes of the external > frames should be in the same drm object. A new option "contiguous_planes" > is added to device. This flag tells device to allocate places in one > memory. When device is derived from vaapi this flag will be enabled. > A new

Re: [FFmpeg-devel] [PATCH V4 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-12-01 Thread Chen, Wenbin
> Quoting Wenbin Chen (2021-11-30 07:28:13) > > diff --git a/libavutil/hwcontext_vulkan.h b/libavutil/hwcontext_vulkan.h > > index fdf2a60156..c485ee7437 100644 > > --- a/libavutil/hwcontext_vulkan.h > > +++ b/libavutil/hwcontext_vulkan.h > > @@ -35,6 +35,17 @@ > > * with the data pointer set to

Re: [FFmpeg-devel] [PATCH V4 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-11-29 Thread Chen, Wenbin
> The vaapi can import external frame, but the planes of the external > frames should be in the same drm object. A new option "contiguous_planes" > is added to device. This flag tells device to allocate places in one > memory. When device is derived from vaapi this flag will be enabled. > A new

Re: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2021-11-29 Thread Chen, Wenbin
> Quoting Wenbin Chen (2021-11-16 09:16:23) > > From: nyanmisaka > > > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > > Now the following commandline works: > > > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > > -init_hw_device qsv=qs@va

Re: [FFmpeg-devel] [PATCH V3 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-11-28 Thread Chen, Wenbin
> 26 Nov 2021, 03:54 by wenbin.c...@intel.com: > > > The vaapi can import external frame, but the planes of the external > > frames should be in the same drm object. A new option > "contiguous_planes" > > is added to device. This flag tells device to allocate places in one > > memory. When device

Re: [FFmpeg-devel] [PATCH V2 3/5] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-11-24 Thread Chen, Wenbin
> 24 Nov 2021, 06:28 by wenbin.c...@intel.com: > > > The vaapi can import external frame, but the planes of the external > > frames should be in the same drm object. A new option > "contiguous_planes" > > is added to device. This flag tells device to allocate places in one > > memory. When device

Re: [FFmpeg-devel] [PATCH V2 1/5] hwcontext_vaapi: Use PRIME_2 memory type for modifiers.

2021-11-24 Thread Chen, Wenbin
> 24 Nov 2021, 06:28 by wenbin.c...@intel.com: > > > From: Bas Nieuwenhuizen > > > > This way we can pass explicit modifiers in. Sometimes the > > modifier matters for the number of memory planes that > > libva accepts, in particular when dealing with > > driver-compressed textures. Furthermore

Re: [FFmpeg-devel] [PATCH 3/3] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2021-11-22 Thread Chen, Wenbin
> From: nyanmisaka > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > Now the following commandline works: > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va - > filter_hw_device ocl \ >

Re: [FFmpeg-devel] [PATCH 2/3] libavutil/hwcontext_qsv: fix a bug for mapping vaapi frame to qsv

2021-11-22 Thread Chen, Wenbin
> From: nyanmisaka > > The data stored in data[3] in VAAPI AVFrame is VASurfaceID while > the data stored in pair->first is the pointer of VASurfaceID, so > we need to do cast to make following commandline works: > > ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \ >

Re: [FFmpeg-devel] [PATCH 1/3] libavcodec/vaapi_decode: fix the problem that init_pool_size < nb_surface

2021-11-22 Thread Chen, Wenbin
> For vaapi if the init_pool_size is not zero, the pool size is fixed. > This means max surfaces is init_pool_size, but when mapping vaapi > frame to qsv frame, the init_pool_size < nb_surface. The cause is that > vaapi_decode_make_config() config the init_pool_size and it is called > twice. The

Re: [FFmpeg-devel] [PATCH v3 1/1] avutils/hwcontext: When deriving a hwdevice, search for existing device in both directions

2021-11-21 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > > Xiang, Haihao > > Sent: Monday, October 18, 2021 6:48 AM > > To: ffmpeg-devel@ffmpeg.org > > Subject: Re: [FFmpeg-devel] [PATCH v3 1/1] avutils/hwcontext: When > > deriving a hwdevice, search for existing device in both

Re: [FFmpeg-devel] [PATCH 4/7] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-11-21 Thread Chen, Wenbin
> 19 Nov 2021, 19:13 by d...@lynne.ee: > > > 19 Nov 2021, 18:59 by d...@lynne.ee: > > > >> 15 Nov 2021, 08:25 by wenbin.c...@intel.com: > >> > 9 Nov 2021, 10:18 by wenbin.c...@intel.com: > > > The vaapi can import external frame, but the planes of the external > > frames

Re: [FFmpeg-devel] [PATCH 7/7] libavutil/hwcontext_vulkan: specify the modifier to create VKImage

2021-11-15 Thread Chen, Wenbin
> 9 Nov 2021, 10:18 by wenbin.c...@intel.com: > > > When vulkan image exports to drm, the tilling need to be > > VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. Now add code to > create vulkan > > image using this format. > > > > Now the following command line works: > > > > ffmpeg -hwaccel vaapi

Re: [FFmpeg-devel] [PATCH 4/7] libavutil/hwcontext_vulkan: Allocate vkFrame in one memory

2021-11-14 Thread Chen, Wenbin
> 9 Nov 2021, 10:18 by wenbin.c...@intel.com: > > > The vaapi can import external frame, but the planes of the external > > frames should be in the same drm object. I add a new function to > > allocate vkFrame in one memory and vulkan device will choose a way > > to allocate memory according to

Re: [FFmpeg-devel] [PATCH 1/4] libavutil/hwcontext_d3d11va: Add nb_surfaces to AVD3D11VAFramesContext

2021-11-10 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > > Chen, Wenbin > > Sent: Wednesday, November 10, 2021 4:03 AM > > To: ffmpeg-devel@ffmpeg.org > > Subject: Re: [FFmpeg-devel] [PATCH 1/4] libavutil/hwcontext_d3d11va: > >

Re: [FFmpeg-devel] [PATCH 2/4] libavutil/hwcontext_qsv: fix a bug when malloc handle_pairs_internal

2021-11-10 Thread Chen, Wenbin
> > -Original Message- > > From: ffmpeg-devel On Behalf Of > > Chen, Wenbin > > Sent: Wednesday, November 10, 2021 4:03 AM > > To: ffmpeg-devel@ffmpeg.org > > Subject: Re: [FFmpeg-devel] [PATCH 2/4] libavutil/hwcontext_qsv: fix > &g

Re: [FFmpeg-devel] [PATCH 6/7] libavutil/hwcontext_vulkan: fix a sem_wait bug when export drm

2021-11-10 Thread Chen, Wenbin
> 9 Nov 2021, 10:18 by wenbin.c...@intel.com: > > > sem_sig_val is wrongly assigned to pWaitSemaphoreValues when export > drm. Now fix > > it. > > > > Signed-off-by: Wenbin Chen <> wenbin.c...@intel.com> > > > > > Thanks for spotting this, I fixed that in my patchset and updated branch. >

Re: [FFmpeg-devel] [PATCH 4/4] libavutil/hwcontext_opencl: fix a bug for mapping qsv frame to opencl

2021-11-09 Thread Chen, Wenbin
> From: nyanmisaka > > mfxHDLPair was added to qsv, so modify qsv->opencl map function as well. > Now the following commandline works: > > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 \ > -init_hw_device qsv=qs@va -init_hw_device opencl=ocl@va - > filter_hw_device ocl \ >

Re: [FFmpeg-devel] [PATCH 3/4] libavutil/hwcontext_qsv: fix a bug for mapping vaapi frame to qsv

2021-11-09 Thread Chen, Wenbin
> From: nyanmisaka > > The data stored in data[3] in VAAPI AVFrame is VASurfaceID while > the data stored in pair->first is the pointer of VASurfaceID, so > we need to do cast to make following commandline works: > > ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \ >

Re: [FFmpeg-devel] [PATCH 2/4] libavutil/hwcontext_qsv: fix a bug when malloc handle_pairs_internal

2021-11-09 Thread Chen, Wenbin
> This commandline cause core dumped: > ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \ > -hwaccel_output_format vaapi -i input.264 \ > -vf "hwmap=derive_device=qsv,format=qsv" \ > -c:v h264_qsv output.264 > > reason: We use nb_surfaces to assign surface to handle_pairs_internal > but

Re: [FFmpeg-devel] [PATCH 1/4] libavutil/hwcontext_d3d11va: Add nb_surfaces to AVD3D11VAFramesContext

2021-11-09 Thread Chen, Wenbin
> Adding nb_surfaces in AVD3D11VAFramesContext in the end of the structure > to support flexible size of this arrays and align to > AVDXVA2FramesContext and AVVAAPIFramesContext. > > Signed-off-by Wenbin Chen > --- > libavutil/hwcontext_d3d11va.c | 3 +-- > libavutil/hwcontext_d3d11va.h | 2 ++

Re: [FFmpeg-devel] [PATCH v3] libavfilter: add a gblur_vulkan filter

2021-11-07 Thread Chen, Wenbin
> 9 Sept 2021, 07:44 by jianhua...@intel.com: > > > This commit adds a powerful and customizable gblur Vulkan filter, > > which provides a maximum 127x127 kernel size of Gaussian Filter. > > The size could be adjusted by requirements on quality or performance. > > > > The following command is on

Re: [FFmpeg-devel] [PATCH 3/3] libavcodec/vaapi_encode: Add async_depth to vaapi_encoder to increase performance

2021-10-31 Thread Chen, Wenbin
> Add async_depth to increase encoder's performance. Reuse encode_fifo as > async buffer. Encoder puts all reordered frame to HW and then check > fifo size. If fifo < async_depth and the top frame is not ready, it will > return AVERROR(EAGAIN) to require more frames. > > 1080p transcoding (no B

Re: [FFmpeg-devel] [PATCH 2/3] libavcodec/vaapi_encode: Add new API adaption to vaapi_encode

2021-10-31 Thread Chen, Wenbin
> Add vaSyncBuffer to VAAPI encoder. Old version API vaSyncSurface wait > surface to complete. When surface is used for multiple operation, it > wait all operation to finish. vaSyncBuffer only wait one channel to > finish. > > Add wait param to vaapi_encode_wait() to prepare for the async_depth >

Re: [FFmpeg-devel] [PATCH 1/3] libavcodec/vaapi_encode: Change the way to call async to increase performance

2021-10-31 Thread Chen, Wenbin
> Fix: #7706. After commit 5fdcf85bbffe7451c2, vaapi encoder's performance > decrease. The reason is that vaRenderPicture() and vaSyncSurface() are > called at the same time (vaRenderPicture() always followed by a > vaSyncSurface()). When we encode stream with B frames, we need buffer to > reorder

Re: [FFmpeg-devel] [PATCH V2] libavutil/hwcontext_qsv: fix a bug for mapping qsv frame to vaapi

2021-09-23 Thread Chen, Wenbin
> Command below failed. > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 > -init_hw_device qsv=qs@va -hwaccel qsv -hwaccel_device qs > -filter_hw_device va -c:v h264_qsv > -i 1080P.264 -vf "hwmap,format=vaapi" -c:v h264_vaapi output.264 > > Cause: Assign pair->first directly to

Re: [FFmpeg-devel] [PATCH V2] libavutil/hwcontext_qsv: fix a bug for mapping qsv frame to vaapi

2021-09-14 Thread Chen, Wenbin
> Command below failed. > ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 > -init_hw_device qsv=qs@va -hwaccel qsv -hwaccel_device qs > -filter_hw_device va -c:v h264_qsv > -i 1080P.264 -vf "hwmap,format=vaapi" -c:v h264_vaapi output.264 > > Cause: Assign pair->first directly to

Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: fix a bug for mapping qsv frame to vaapi

2021-09-12 Thread Chen, Wenbin
> On Fri, 2021-09-10 at 02:19 +0000, Chen, Wenbin wrote: > > > -Original Message- > > > From: ffmpeg-devel On Behalf Of > > > James Almer > > > Sent: Thursday, September 9, 2021 8:48 PM > > > To: ffmpeg-devel@ffmpeg.org > > > Su

Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: fix a bug for mapping qsv frame to vaapi

2021-09-09 Thread Chen, Wenbin
> -Original Message- > From: ffmpeg-devel On Behalf Of > James Almer > Sent: Thursday, September 9, 2021 8:48 PM > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: fix a bug for > mapping qsv frame to vaapi > > On 9/9/2021 6:13 AM, Wenbin Chen

Re: [FFmpeg-devel] [PATCH v2] avutils/hwcontext: When deriving a hwdevice, search for existing device in both directions

2021-09-08 Thread Chen, Wenbin
a > hwdevice, search for existing device in both directions > > > > > -Original Message- > > From: ffmpeg-devel On Behalf Of > > Chen, Wenbin > > Sent: Wednesday, 8 September 2021 07:58 > > To: FFmpeg development discussions and patches > de...@ffmpeg

Re: [FFmpeg-devel] [PATCH v2] avutils/hwcontext: When deriving a hwdevice, search for existing device in both directions

2021-09-07 Thread Chen, Wenbin
Hi softworkz: Any updates on this patch? I want to submit pathes to qsv, but they depends on this patch Thanks Wenbin > -Original Message- > From: ffmpeg-devel On Behalf Of Soft > Works > Sent: Thursday, August 19, 2021 3:52 PM > To: FFmpeg development discussions and patches

Re: [FFmpeg-devel] [V2 08/10] libavutil/hwcontext_vulkan: fix wrong offset of plane

2021-09-05 Thread Chen, Wenbin
> -Original Message- > From: Lynne > Sent: Wednesday, September 1, 2021 7:33 PM > To: Chen, Wenbin > Subject: RE: [FFmpeg-devel] [V2 08/10] libavutil/hwcontext_vulkan: fix wrong > offset of plane > > 1 Sept 2021, 03:40 by wenbin.c...@intel.com: > > &g

Re: [FFmpeg-devel] [V2 03/10] libavfilter/vulkan: Fix the way to use sem

2021-08-31 Thread Chen, Wenbin
> -Original Message- > From: ffmpeg-devel On Behalf Of > Lynne > Sent: Tuesday, August 31, 2021 7:26 PM > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [V2 03/10] libavfilter/vulkan: Fix the way to use > sem > > 31 Aug 2021, 09:24 by

Re: [FFmpeg-devel] [V2 08/10] libavutil/hwcontext_vulkan: fix wrong offset of plane

2021-08-31 Thread Chen, Wenbin
> -Original Message- > From: ffmpeg-devel On Behalf Of > Lynne > Sent: Tuesday, August 31, 2021 7:42 PM > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [V2 08/10] libavutil/hwcontext_vulkan: fix wrong > offset of plane > > 31 Aug 2021,

  1   2   >