Re: [FFmpeg-devel] [PATCH v2] lavc/vaapi_h264: Fix merging fields in DPB with missing references

2024-05-27 Thread Xiang, Haihao
On Wo, 2024-05-08 at 17:41 +0200, David Rosca wrote: > If there are missing references, h264 decode does error concealment > by copying previous refs which means there will be duplicated surfaces. > Check long_ref and frame_idx in addition to surface when looking for > the other field to avoid

Re: [FFmpeg-devel] [PATCH v2 1/2] lavc/vaapi_decode: Make it possible to send multiple slice params buffers

2024-05-27 Thread Xiang, Haihao
On Wo, 2024-05-08 at 09:11 +0200, David Rosca wrote: > --- > v2: No changes > >  libavcodec/vaapi_av1.c    | 2 +- >  libavcodec/vaapi_decode.c | 3 ++- >  libavcodec/vaapi_decode.h | 1 + >  libavcodec/vaapi_h264.c   | 2 +- >  libavcodec/vaapi_hevc.c   | 4 ++-- >  libavcodec/vaapi_mjpeg.c  | 2 +- >

Re: [FFmpeg-devel] [PATCH 1/2] lavc/qsvdec: fix keyframes

2024-05-26 Thread Xiang, Haihao
On Vr, 2024-05-24 at 13:20 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > MFX_FRAMETYPE_IDR is ORed to the frame type for AVC and HEVC keyframes, > and MFX_FRAMETYPE_I is taken as keyframe flag for other codecs when > getting the output surface from the SDK, hence we may

Re: [FFmpeg-devel] [PATCH 07/17] qsv: Initialize impl_value

2024-05-26 Thread Xiang, Haihao
On Ma, 2024-05-27 at 01:52 +0200, Michael Niedermayer wrote: > Fixes: The warnings from CID1598553 Uninitialized scalar variable > > Passing partly initialized structs is ugly and asking for hard to reproduce > bugs, > I do not know if this actually fixes a bug or just avoids the uninitialized >

[FFmpeg-devel] [PATCH 2/2] lavc/qsvenc: respect user's setting for keyframes

2024-05-23 Thread Xiang, Haihao
From: Haihao Xiang For example: ./ffmpeg -hwaccel qsv -i input.mp4 -force_key_frames:v source -c:v hevc_qsv -f null - Signed-off-by: Haihao Xiang --- libavcodec/qsvenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index

[FFmpeg-devel] [PATCH 1/2] lavc/qsvdec: fix keyframes

2024-05-23 Thread Xiang, Haihao
From: Haihao Xiang MFX_FRAMETYPE_IDR is ORed to the frame type for AVC and HEVC keyframes, and MFX_FRAMETYPE_I is taken as keyframe flag for other codecs when getting the output surface from the SDK, hence we may mark the output frame as keyframe accordingly. Signed-off-by: Haihao Xiang ---

Re: [FFmpeg-devel] [PATCH 1/4] lavc/qsvenc: rename the skip_frame private option to qsv_skip_frame

2024-05-23 Thread Xiang, Haihao
On Do, 2024-05-23 at 11:03 +0200, Anton Khirnov wrote: > It conflicts with the AVCodecContext option of the same name. > --- The skip_frame option in AVCodecContext is for decoding only, may we not use this option for encoding ? >  libavcodec/qsvenc.h | 2 +- >  1 file changed, 1 insertion(+),

Re: [FFmpeg-devel] [PATCH 1/2] lavc/qsvdec: update HDR side data on output AVFrame for AV1 decoding

2024-05-23 Thread Xiang, Haihao
On Wo, 2024-05-22 at 12:15 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > The SDK may provide HDR metadata for HDR streams via mfxExtBuffer > attached on output mfxFrameSurface1 > > Signed-off-by: Haihao Xiang > --- >  

Re: [FFmpeg-devel] [PATCH v1 1/2] lavc/qsvdec: Allow decoders to export crop information

2024-05-23 Thread Xiang, Haihao
On Ma, 2024-05-20 at 10:05 +0800, fei.w.wang-at-intel@ffmpeg.org wrote: > From: Fei Wang > > Signed-off-by: Fei Wang > --- >  libavcodec/qsvdec.c | 6 +- >  1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c > index

[FFmpeg-devel] [PATCH] libavcodec/x86/vvc/vvc_sad: fix assembler error

2024-05-23 Thread Xiang, Haihao
From: Haihao Xiang X86ASMlibavcodec/x86/vvc/vvc_sad.o libavcodec/x86/vvc/vvc_sad.asm:85: error: invalid number of operands libavcodec/x86/vvc/vvc_sad.asm:87: error: invalid number of operands Signed-off-by: Haihao Xiang --- libavcodec/x86/vvc/vvc_sad.asm | 4 ++-- 1 file changed, 2

[FFmpeg-devel] [PATCH 2/2] lavc/qsvenc_av1: accept HDR metadata if have

2024-05-21 Thread Xiang, Haihao
From: Haihao Xiang The sdk av1 encoder can accept HDR metadata via mfxEncodeCtrl::ExtParam. Signed-off-by: Haihao Xiang --- libavcodec/qsvenc_av1.c | 73 + 1 file changed, 73 insertions(+) diff --git a/libavcodec/qsvenc_av1.c b/libavcodec/qsvenc_av1.c

[FFmpeg-devel] [PATCH 1/2] lavc/qsvdec: update HDR side data on output AVFrame for AV1 decoding

2024-05-21 Thread Xiang, Haihao
From: Haihao Xiang The SDK may provide HDR metadata for HDR streams via mfxExtBuffer attached on output mfxFrameSurface1 Signed-off-by: Haihao Xiang --- libavcodec/qsvdec.c | 48 - 1 file changed, 47 insertions(+), 1 deletion(-) diff --git

Re: [FFmpeg-devel] [PATCH] avutil/hwcontext_qsv: fix GCC 14.1 warnings

2024-05-21 Thread Xiang, Haihao
On Ma, 2024-05-20 at 02:37 +, Wu, Tong1 wrote: > > -Original Message- > > From: ffmpeg-devel On Behalf Of Oleg > > Tolmatcev > > Sent: Saturday, May 18, 2024 3:39 AM > > To: ffmpeg-devel@ffmpeg.org > > Subject: [FFmpeg-devel] [PATCH] avutil/hwcontext_qsv: fix GCC 14.1 warnings > > >

Re: [FFmpeg-devel] [PATCH 2/2] lavc/qsvenc_av1: accept HDR metadata if have

2024-05-21 Thread Xiang, Haihao
On Di, 2024-05-21 at 08:35 +0200, Andreas Rheinhardt wrote: > Xiang, Haihao: > > From: Haihao Xiang > > > > The sdk av1 encoder can accept HDR metadata via mfxEncodeCtrl::ExtParam. > > > > Signed-off-by: Haihao Xiang > >

[FFmpeg-devel] [PATCH 2/2] lavc/qsvenc_av1: accept HDR metadata if have

2024-05-20 Thread Xiang, Haihao
From: Haihao Xiang The sdk av1 encoder can accept HDR metadata via mfxEncodeCtrl::ExtParam. Signed-off-by: Haihao Xiang --- libavcodec/qsvenc_av1.c | 75 + 1 file changed, 75 insertions(+) diff --git a/libavcodec/qsvenc_av1.c b/libavcodec/qsvenc_av1.c

[FFmpeg-devel] [PATCH 1/2] lavc/qsvdec: update HDR side data on output AVFrame for AV1 decoding

2024-05-20 Thread Xiang, Haihao
From: Haihao Xiang The SDK may provides HDR metadata for HDR streams via mfxExtBuffer attached on output mfxFrameSurface1 Signed-off-by: Haihao Xiang --- libavcodec/qsvdec.c | 49 - 1 file changed, 48 insertions(+), 1 deletion(-) diff --git

Re: [FFmpeg-devel] [PATCH v2] lavc/vaapi_decode: Reject decoding of frames with no slices

2024-05-19 Thread Xiang, Haihao
On Ma, 2024-05-13 at 09:38 +0200, David Rosca wrote: > Matches other hwaccels. > --- > v2: AVERROR > >  libavcodec/vaapi_decode.c | 5 + >  1 file changed, 5 insertions(+) > > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c > index 8e9f647c20..7c91d50f7b 100644 > ---

Re: [FFmpeg-devel] [PATCH] lavu/version: fix minor version

2024-05-18 Thread Xiang, Haihao
On Vr, 2024-05-17 at 13:05 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > The latest version should be 59.18.100 since commit 01c5f4ad > > $ git diff 01c5f4ad~1..HEAD doc/APIchanges > ... > +2024-05-10 - x - lavu 59.18.100 - cpu.h > +  Add AV_CPU_FLAG_RV_Z

[FFmpeg-devel] [PATCH] lavu/version: fix minor version

2024-05-16 Thread Xiang, Haihao
From: Haihao Xiang The latest version should be 59.18.100 since commit 01c5f4ad $ git diff 01c5f4ad~1..HEAD doc/APIchanges ... +2024-05-10 - x - lavu 59.18.100 - cpu.h + Add AV_CPU_FLAG_RV_ZVBB. + Signed-off-by: Haihao Xiang --- libavutil/version.h | 2 +- 1 file changed, 1

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_decode: Reject decoding of frames with no slices

2024-05-13 Thread Xiang, Haihao
On Vr, 2024-05-10 at 11:55 +0200, David Rosca wrote: > Matches other hwaccels. > --- >  libavcodec/vaapi_decode.c | 5 + >  1 file changed, 5 insertions(+) > > diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c > index 8e9f647c20..3c4030c073 100644 > ---

Re: [FFmpeg-devel] [PATCH v2 9/9] lavfi/qsvvpp: require a dynamic frame pool for output if possible

2024-05-13 Thread Xiang, Haihao
On Wo, 2024-05-08 at 14:03 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > Signed-off-by: Haihao Xiang > --- >  libavfilter/qsvvpp.c | 52 >  1 file changed, 29 insertions(+), 23 deletions(-) > > diff --git a/libavfilte

Re: [FFmpeg-devel] [PATCH 4/4] avcodec/qsvdec: Check av_image_get_buffer_size() for failure

2024-05-12 Thread Xiang, Haihao
On Ma, 2024-05-13 at 03:20 +0200, Michael Niedermayer wrote: > Fixes: CID1477406 Improper use of negative value > > Sponsored-by: Sovereign Tech Fund > Signed-off-by: Michael Niedermayer > --- >  libavcodec/qsvdec.c | 9 ++--- >  1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git

Re: [FFmpeg-devel] [PATCH 1/3] lavc/vaapi_encode_av1: implement write_extra_header callback

2024-05-08 Thread Xiang, Haihao
On Ma, 2024-04-15 at 10:07 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > This can be used to insert a metadata OBU to the stream later. > > Signed-off-by: Haihao Xiang > --- >  libavcodec/vaapi_encode_av1.c | 42 ++- >  1 file chan

Re: [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support

2024-05-08 Thread Xiang, Haihao
On Di, 2024-05-07 at 21:25 +0100, Mark Thompson wrote: > On 07/05/2024 06:27, Xiang, Haihao wrote: > > On So, 2024-05-05 at 20:01 +0100, Mark Thompson wrote: > > > libva 2.0 was released in 2017 and the 2.x versions are included in all > > > supported distributions

[FFmpeg-devel] [PATCH v2 8/9] lavfi/qsvvpp: use the right mfxFrameInfo when dynamic frame pool is used

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 10d970652e..c4c338b36b 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -308,7 +308,7 @@

[FFmpeg-devel] [PATCH v2 9/9] lavfi/qsvvpp: require a dynamic frame pool for output if possible

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 52 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index c4c338b36b..1c9773df09 100644 --- a/libavfilter/qsvvpp.c

[FFmpeg-devel] [PATCH v2 7/9] lavc/qsvdec: require a dynamic frame pool if possible

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang This allows a downstream element stores more frames from qsv decoders and fixes error in get_buffer(). $ ffmpeg -hwaccel qsv -hwaccel_output_format qsv -i input.mp4 -vf reverse -f null - [vist#0:0/h264 @ 0x562248f12c50] Decoding error: Cannot allocate memory [h264_qsv @

[FFmpeg-devel] [PATCH v2 6/9] lavc/qsvenc: use the right info for encoding

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavcodec/qsvenc.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index d881c11160..3df355ce78 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -745,8

[FFmpeg-devel] [PATCH v2 5/9] lavc/qsv: fix the mfx allocator to support dynamic frame pool

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang When the external allocator is used for dynamic frame allocation, only video memory is supported, the SDK doesn't lock/unlock the memory block via Lock()/Unlock() calls. Signed-off-by: Haihao Xiang --- libavcodec/qsv.c | 68 +++-

[FFmpeg-devel] [PATCH v2 4/9] lavu/hwcontext_qsv: add support for dynamic frame pool in qsv_map_to

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Make it work with the source which has a dynamic frame pool. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 131 +- 1 file changed, 129 insertions(+), 2 deletions(-) diff --git a/libavutil/hwcontext_qsv.c

[FFmpeg-devel] [PATCH v2 3/9] lavu/hwcontext_qsv: add support for dynamic frame pool in qsv_frames_derive_to

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Make it work with the source which has a dynamic frame pool. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 61 ++- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/libavutil/hwcontext_qsv.c

[FFmpeg-devel] [PATCH v2 2/9] lavu/hwcontext_qsv: create dynamic frame pool if required

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang When AVHWFramesContext.initial_pool_size is 0, a dynamic frame pool is required. We may support this under certain conditions, e.g. oneVPL 2.9+ support dynamic frame allocation, we needn't provide a fixed frame pool in the mfxFrameAllocator.Alloc callback. Signed-off-by:

[FFmpeg-devel] [PATCH v2 1/9] lavu/hwcontext_qsv: update AVQSVFramesContext to support dynamic frame pool

2024-05-08 Thread Xiang, Haihao
From: Haihao Xiang Add AVQSVFramesContext.info and update the description. Signed-off-by: Haihao Xiang --- doc/APIchanges| 3 +++ libavutil/hwcontext_qsv.c | 4 ++-- libavutil/hwcontext_qsv.h | 27 +-- libavutil/version.h | 2 +- 4 files changed,

Re: [FFmpeg-devel] [PATCH 1/2] lavc/vaapi_decode: Make it possible to send multiple slice params buffers

2024-05-07 Thread Xiang, Haihao
On So, 2024-04-28 at 09:26 +0200, David Rosca wrote: > --- >  libavcodec/vaapi_av1.c    | 2 +- >  libavcodec/vaapi_decode.c | 3 ++- >  libavcodec/vaapi_decode.h | 1 + >  libavcodec/vaapi_h264.c   | 2 +- >  libavcodec/vaapi_hevc.c   | 4 ++-- >  libavcodec/vaapi_mjpeg.c  | 2 +- >  

Re: [FFmpeg-devel] [PATCH v4 1/5] configure: Remove libva 1.x support

2024-05-06 Thread Xiang, Haihao
On So, 2024-05-05 at 20:01 +0100, Mark Thompson wrote: > libva 2.0 was released in 2017 and the 2.x versions are included in all > supported distributions nowadays.  Various features no longer need any > configure check after this command, including all codecs except AV1. > Note that the libva

Re: [FFmpeg-devel] [PATCH 2/2] lavc/qsvenc: add support for oneVPL string API

2024-05-03 Thread Xiang, Haihao
On Do, 2024-02-29 at 13:34 +0800, Xiang, Haihao wrote: > From: "Mandava, Mounika" > > A new option -qsv_params is added, where is a :-separated > list of key=value parameters. > > Example: > $ ffmpeg -y -f lavfi -i testsrc -vf "format=nv12" -

Re: [FFmpeg-devel] [PATCH 1/9] lavu/hwcontext_qsv: update AVQSVFramesContext to support dynamic frame pool

2024-05-03 Thread Xiang, Haihao
On Do, 2024-05-02 at 20:35 +0100, Mark Thompson wrote: > On 28/04/2024 08:39, Xiang, Haihao wrote: > > From: Haihao Xiang > > > > Add AVQSVFramesContext.info and update the description. > > > > Signed-off-by: Haihao Xiang > > --- > >  doc/

Re: [FFmpeg-devel] [PATCH 5/6] vaapi_av1: Fix force_integer_mv value

2024-04-30 Thread Xiang, Haihao
On Sa, 2024-04-27 at 16:30 +0100, Mark Thompson wrote: > --- >  libavcodec/vaapi_av1.c | 2 +- >  1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/vaapi_av1.c b/libavcodec/vaapi_av1.c > index 1f563483b9..f61bf63098 100644 > --- a/libavcodec/vaapi_av1.c > +++

Re: [FFmpeg-devel] [PATCH 2/2] lavc/vaapi_hevc: Don't require exact profiles

2024-04-30 Thread Xiang, Haihao
On So, 2024-04-28 at 15:14 +0100, Mark Thompson wrote: > On 24/04/2024 14:45, Xiang, Haihao wrote: > > On Ma, 2024-04-22 at 22:23 +0100, Mark Thompson wrote: > > > Rather than turning the constraint flags into a single profile and then > > > searching for that profile

[FFmpeg-devel] [PATCH 8/9] lavfi/qsvvpp: use the right mfxFrameInfo when dynamic frame pool is used

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 8c92fec0c1..6814d8add8 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -308,7 +308,7 @@

[FFmpeg-devel] [PATCH 7/9] lavc/qsvdec: require a dynamic frame pool if possible

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang This allows a downstream element stores more frames from qsv decoders and fixes error in get_buffer(). $ ffmpeg -hwaccel qsv -hwaccel_output_format qsv -i input.mp4 -vf reverse -f null - [vist#0:0/h264 @ 0x562248f12c50] Decoding error: Cannot allocate memory [h264_qsv @

[FFmpeg-devel] [PATCH 9/9] lavfi/qsvvpp: require a dynamic frame pool for output if possible

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 52 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 6814d8add8..f3897823db 100644 --- a/libavfilter/qsvvpp.c

[FFmpeg-devel] [PATCH 6/9] lavc/qsvenc: use the right info for encoding

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavcodec/qsvenc.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c index 018d193495..ca1a88e49f 100644 --- a/libavcodec/qsvenc.c +++ b/libavcodec/qsvenc.c @@ -744,8

[FFmpeg-devel] [PATCH 5/9] lavc/qsv: fix the mfx allocator to support dynamic frame pool

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang When the external allocator is used for dynamic frame allocation, only video memory is supported, the SDK doesn't lock/unlock the memory block via Lock()/Unlock() calls. Signed-off-by: Haihao Xiang --- libavcodec/qsv.c | 68 +++-

[FFmpeg-devel] [PATCH 4/9] lavu/hwcontext_qsv: add support for dynamic frame pool in qsv_map_to

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Make it work with the source which has a dynamic frame pool. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 131 +- 1 file changed, 129 insertions(+), 2 deletions(-) diff --git a/libavutil/hwcontext_qsv.c

[FFmpeg-devel] [PATCH 3/9] lavu/hwcontext_qsv: add support for dynamic frame pool in qsv_frames_derive_to

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Make it work with the source which has a dynamic frame pool. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 61 ++- 1 file changed, 54 insertions(+), 7 deletions(-) diff --git a/libavutil/hwcontext_qsv.c

[FFmpeg-devel] [PATCH 2/9] lavu/hwcontext_qsv: create dynamic frame pool if required

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang When AVHWFramesContext.initial_pool_size is 0, a dynamic frame pool is required. We may support this under certain conditions, e.g. oneVPL 2.9+ support dynamic frame allocation, we needn't provide a fixed frame pool in the mfxFrameAllocator.Alloc callback. Signed-off-by:

[FFmpeg-devel] [PATCH 1/9] lavu/hwcontext_qsv: update AVQSVFramesContext to support dynamic frame pool

2024-04-28 Thread Xiang, Haihao
From: Haihao Xiang Add AVQSVFramesContext.info and update the description. Signed-off-by: Haihao Xiang --- doc/APIchanges| 3 +++ libavutil/hwcontext_qsv.c | 4 ++-- libavutil/hwcontext_qsv.h | 28 +--- libavutil/version.h | 4 ++-- 4 files

Re: [FFmpeg-devel] [PATCH] lavfi/qsv: Copy metadata fields from the given input

2024-04-27 Thread Xiang, Haihao
On Do, 2024-04-25 at 13:18 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > Currently it always copies the metadata fields from the last input when > there are multiple inputs for the filter. For example, the metadata > fields from input1 are copied to the output for ove

Re: [FFmpeg-devel] [PATCH v4] lavu/hwcontext_vaapi: Use vaMapBuffer2 for mapping image buffers

2024-04-27 Thread Xiang, Haihao
On Do, 2024-04-25 at 09:33 +0200, David Rosca wrote: > On Fri, Nov 24, 2023 at 8:27 AM Xiang, Haihao wrote: > > > > On Vr, 2023-10-27 at 22:25 +0200, David Rosca wrote: > > > This allows some optimizations in driver, such as not having to read > > > ba

[FFmpeg-devel] [PATCH] lavfi/qsv: Copy metadata fields from the given input

2024-04-24 Thread Xiang, Haihao
From: Haihao Xiang Currently it always copies the metadata fields from the last input when there are multiple inputs for the filter. For example, the metadata fields from input1 are copied to the output for overlay_qsv filter, however for regular overlay filters, the metadata fields from input0

Re: [FFmpeg-devel] [PATCH v3 1/4] lavu: Remove libva 1.x support

2024-04-24 Thread Xiang, Haihao
On Ma, 2024-04-22 at 22:41 +0100, Mark Thompson wrote: > libva 2.0 was released in 2017 and the 2.x versions are included in all > supported distributions nowadays. > --- > Rebased. > > I think we can also drop the other quirks?  They are for the proprietary media > SDK driver (which I think is

Re: [FFmpeg-devel] [PATCH 1/2] lavc/h265_profile_level: Expand profile compatibility checking

2024-04-24 Thread Xiang, Haihao
On Ma, 2024-04-22 at 22:22 +0100, Mark Thompson wrote: > Replace existing get_profile() with find_profile(), which finds the > lowest compatible profile rather than requiring an exact match. > --- >  libavcodec/h265_profile_level.c | 73 + >  

Re: [FFmpeg-devel] [PATCH 2/2] lavc/vaapi_hevc: Don't require exact profiles

2024-04-24 Thread Xiang, Haihao
On Ma, 2024-04-22 at 22:23 +0100, Mark Thompson wrote: > Rather than turning the constraint flags into a single profile and then > searching for that profile (and failing if it doesn't match any profile > exactly), instead search all supported profiles and use the first one > which supports the

Re: [FFmpeg-devel] [PATCH 2/5] doc/examples/qsv_transcode: Simplify loop

2024-04-23 Thread Xiang, Haihao
On Wo, 2024-04-24 at 03:45 +0200, Michael Niedermayer wrote: > Fixes: CID1428858(2/2) Logically dead code > > Sponsored-by: Sovereign Tech Fund > Signed-off-by: Michael Niedermayer > --- >  doc/examples/qsv_transcode.c | 4 +--- >  1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git

Re: [FFmpeg-devel] [PATCH 5/5] doc/examples/qsv_transcode: Initialize pointer before free

2024-04-23 Thread Xiang, Haihao
On Wo, 2024-04-24 at 03:45 +0200, Michael Niedermayer wrote: > Fixees: CID1517023 Uninitialized pointer read > > Sponsored-by: Sovereign Tech Fund > Signed-off-by: Michael Niedermayer > --- >  doc/examples/qsv_transcode.c | 2 +- >  1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git

Re: [FFmpeg-devel] [PATCH 4/5] doc/examples/qsv_transcode: Simplify str_to_dict() loop

2024-04-23 Thread Xiang, Haihao
On Wo, 2024-04-24 at 03:45 +0200, Michael Niedermayer wrote: > Fixes: CID1517022 Logically dead code > > Sponsored-by: Sovereign Tech Fund > Signed-off-by: Michael Niedermayer > --- >  doc/examples/qsv_transcode.c | 3 +-- >  1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git

Re: [FFmpeg-devel] [PATCH v1] lavc/qsvdec: Use FFmpeg default 1/25 framerate if can't derive it from bitstream

2024-04-23 Thread Xiang, Haihao
On Do, 2024-04-18 at 16:15 +0800, fei.w.wang-at-intel@ffmpeg.org wrote: > From: Fei Wang > > Fix error: > $ ffmpeg -hwaccel qsv -i input.h265 -f null - > ... > [null @ 0x55da1a629200] Application provided invalid, non monotonically > increasing dts to muxer in stream 0: 3 >= 3 > >

Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe

2024-04-23 Thread Xiang, Haihao
On Wo, 2024-04-17 at 09:46 -0500, Mark Samuelson wrote: > The QSV hardware context currently uses pthreads to lock initilization, > which is not available on windows builds.  Instead, use the AVMutex > object.  Also lock uses of the realigned_upload_frame and > realigned_download_frame objects, so

Re: [FFmpeg-devel] [PATCH] lavc/vp9: Fix regression introduced in 0ba05857

2024-04-23 Thread Xiang, Haihao
On Di, 2024-04-23 at 14:14 +0200, Andreas Rheinhardt wrote: > Xiang, Haihao: > > From: Haihao Xiang > > > > It is possible that ff_progress_frame_await() is called but > > ff_progress_frame_report() isn't called when a hardware acceleration > > method is used, s

[FFmpeg-devel] [PATCH] lavc/vp9: Fix regression introduced in 0ba05857

2024-04-22 Thread Xiang, Haihao
From: Haihao Xiang It is possible that ff_progress_frame_await() is called but ff_progress_frame_report() isn't called when a hardware acceleration method is used, so a thread for vp9 decoding might get stuck. Signed-off-by: Haihao Xiang --- libavcodec/vp9.c | 2 +- 1 file changed, 1

[FFmpeg-devel] [PATCH] configure: Fix typo

2024-04-22 Thread Xiang, Haihao
From: Haihao Xiang Otherwise there are link errors: LD ffprobe_g /usr/bin/ld: libavcodec/libavcodec.so: undefined reference to `ff_dovi_rpu_generate' /usr/bin/ld: libavcodec/libavcodec.so: undefined reference to `ff_dovi_configure' collect2: error: ld returned 1 exit status Signed-off-by:

Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe

2024-04-17 Thread Xiang, Haihao
On Sa, 2024-04-13 at 07:57 -0500, Mark Samuelson wrote: > The QSV hardware context currently uses pthreads to lock initilization, > which is not available on windows builds.  Instead, use the AVMutex > object.  Also lock uses of the realigned_upload_frame and > realigned_download_frame objects, so

[FFmpeg-devel] [PATCH 3/3] lavc/vaapi_encode_av1: insert HDR_CLL metadata if have

2024-04-14 Thread Xiang, Haihao
From: Haihao Xiang Only look for HDR_CLL on key frame on the output. Signed-off-by: Haihao Xiang --- libavcodec/vaapi_encode_av1.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c index 4077d21202..b868f5b66a

[FFmpeg-devel] [PATCH 2/3] lavc/vaapi_encode_av1: Insert HDR_MDCV metadata if have

2024-04-14 Thread Xiang, Haihao
From: Haihao Xiang Only look for HDR_MDVC on key frame on the output. Signed-off-by: Haihao Xiang --- libavcodec/vaapi_encode_av1.c | 46 +++ 1 file changed, 46 insertions(+) diff --git a/libavcodec/vaapi_encode_av1.c b/libavcodec/vaapi_encode_av1.c index

[FFmpeg-devel] [PATCH 1/3] lavc/vaapi_encode_av1: implement write_extra_header callback

2024-04-14 Thread Xiang, Haihao
From: Haihao Xiang This can be used to insert a metadata OBU to the stream later. Signed-off-by: Haihao Xiang --- libavcodec/vaapi_encode_av1.c | 42 ++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/libavcodec/vaapi_encode_av1.c

Re: [FFmpeg-devel] [PATCH 1/3] lavfi/tonemap_vaapi: By default use bt709 for output frame

2024-04-14 Thread Xiang, Haihao
On Ma, 2024-03-18 at 16:12 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > By default don't use the color properties from input frame as output > frame properties when performing HDR to SDR conversion > > Signed-off-by: Haihao Xiang > --- >  doc/filter

Re: [FFmpeg-devel] [PATCH 1/3] lavfi: Add pad_vaapi filter

2024-04-14 Thread Xiang, Haihao
On Ma, 2024-03-18 at 14:06 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > Signed-off-by: Haihao Xiang > --- >  configure  |   1 + >  doc/filters.texi   |  77 ++ >  libavfilter/Makefile   |   1 + >  libavfilter/allfilters.c 

Re: [FFmpeg-devel] [PATCH v2 1/2] lavc/vaapi_decode: Use dynamic frame pool if possible

2024-04-14 Thread Xiang, Haihao
On Wo, 2024-04-10 at 11:01 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > libva2 doesn't require a fixed surface-array any more, so we may use > dynamic frame pool for decoding when libva2 is available, which allows a > downstream element stores more frames from VAAPI dec

Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/vaapi_encode_h264: use is_reference to fill reference_pic_flag

2024-04-14 Thread Xiang, Haihao
On Di, 2024-03-05 at 16:02 +0800, tong1.wu-at-intel@ffmpeg.org wrote: > From: Tong Wu > > This codec supports FLAG_B_PICTURE_REFERENCES. We need to correctly fill > the reference_pic_flag with is_reference variable instead of 0 for B > frames. > > Signed-off-by: Tong Wu > --- >  

Re: [FFmpeg-devel] [PATCH v3 1/2] lavc/vaapi_encode_h265: Map HEVC AV REXT profile to VA REXT profile

2024-04-14 Thread Xiang, Haihao
On Ma, 2024-03-18 at 12:21 +0800, fei.w.wang-at-intel@ffmpeg.org wrote: > From: Fei Wang > > There is no Main8/10 profile defined in HEVC REXT profiles. Use Main12 > which is compatible with 8/10bit. > > Signed-off-by: Fei Wang > --- >  libavcodec/vaapi_encode_h265.c | 4 ++-- >  1 file

[FFmpeg-devel] [PATCH v2 2/2] lavfi/vaapi_vpp: Use dynamic frame pool in outlink if possible

2024-04-09 Thread Xiang, Haihao
From: Haihao Xiang This can avoid to exhaust the buffers within outlink when libva2 is available. For example: $ ffmpeg -hwaccel_output_format vaapi -hwaccel vaapi -i input.mp4 \ -vf 'scale_vaapi=w=720:h=480' -c:v hevc_vaapi -f null - ... [vf#0:0 @ 0x55acad91f400] Error while filtering: Cannot

[FFmpeg-devel] [PATCH v2 1/2] lavc/vaapi_decode: Use dynamic frame pool if possible

2024-04-09 Thread Xiang, Haihao
From: Haihao Xiang libva2 doesn't require a fixed surface-array any more, so we may use dynamic frame pool for decoding when libva2 is available, which allows a downstream element stores more frames from VAAPI decoders and fixes the error below: $ ffmpeg -hwaccel vaapi -hwaccel_output_format

Re: [FFmpeg-devel] [PATCH 1/3] lavu/hwcontext_vaapi: Add a new quirk

2024-04-06 Thread Xiang, Haihao
On Wo, 2024-04-03 at 20:21 +0100, Mark Thompson wrote: > On 28/03/2024 02:17, Xiang, Haihao wrote: > > From: Haihao Xiang > > > > libva2 doesn't require a fixed surface-array any more, but some > > driver/hardware combinations which rely on this are still used. To >

Re: [FFmpeg-devel] [PATCH 1/3] lavu/hwcontext_vaapi: Add a new quirk

2024-04-02 Thread Xiang, Haihao
On Do, 2024-03-28 at 10:17 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > libva2 doesn't require a fixed surface-array any more, but some > driver/hardware combinations which rely on this are still used. To > reduce the impact to users, add a quirk for the driver/hardwar

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_hevc: Add support for Main Intra & Main 10 Intra

2024-04-02 Thread Xiang, Haihao
On Di, 2024-04-02 at 22:01 +0100, Mark Thompson wrote: > On 02/04/2024 07:55, Xiang, Haihao wrote: > > On Ma, 2024-04-01 at 21:11 +0100, Mark Thompson wrote: > > > On 28/03/2024 02:07, Xiang, Haihao wrote: > > > > From: Haihao Xiang > > > > > > &g

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_hevc: Add support for Main Intra & Main 10 Intra

2024-04-02 Thread Xiang, Haihao
On Ma, 2024-04-01 at 21:11 +0100, Mark Thompson wrote: > On 28/03/2024 02:07, Xiang, Haihao wrote: > > From: Haihao Xiang > > > > Both Main Intra and Main 10 Intra are Rext, we may use Main and Main 10 > > instead for decoding. This patch fixes the error below: >

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_hevc: Add support for Main Intra & Main 10 Intra

2024-04-01 Thread Xiang, Haihao
On Do, 2024-03-28 at 10:07 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > Both Main Intra and Main 10 Intra are Rext, we may use Main and Main 10 > instead for decoding. This patch fixes the error below: > > [hevc @ 0x55a771b80a00] No support for codec hevc

Re: [FFmpeg-devel] [PATCH] lavc/vaapi_encode: convert from lambda to qp

2024-04-01 Thread Xiang, Haihao
On Do, 2024-03-28 at 14:55 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > When AV_CODEC_FLAG_QSCALE is set, the value of avctx->global_quality is > lambda. > > Signed-off-by: Haihao Xiang > --- >  libavcodec/vaapi_encode.c | 5 - >  1 file change

Re: [FFmpeg-devel] [PATCH v1] lavc/vaapi_encode: Add VAAPI version check for BLBRC

2024-04-01 Thread Xiang, Haihao
On Vr, 2024-03-29 at 09:10 +0800, fei.w.wang-at-intel@ffmpeg.org wrote: > From: Fei Wang > > Fix build fail when VAAPI version less than 0.39.2. > > Signed-off-by: Fei Wang > --- >  libavcodec/vaapi_encode.c | 20 +--- >  1 file changed, 17 insertions(+), 3 deletions(-) > >

[FFmpeg-devel] [PATCH] lavc/vaapi_encode: convert from lambda to qp

2024-03-28 Thread Xiang, Haihao
From: Haihao Xiang When AV_CODEC_FLAG_QSCALE is set, the value of avctx->global_quality is lambda. Signed-off-by: Haihao Xiang --- libavcodec/vaapi_encode.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c index

[FFmpeg-devel] [PATCH 3/3] lavfi/vaapi_vpp: Use dynamic frame pool in outlink if possible

2024-03-27 Thread Xiang, Haihao
From: Haihao Xiang This can fix the broken cases for the driver/hardware combination which doesn't rely on fixed surface-array. For example: $ ffmpeg -hwaccel_output_format vaapi -hwaccel vaapi -i input.mp4 \ -vf 'scale_vaapi=w=720:h=480' -c:v hevc_vaapi -f null - Signed-off-by: Haihao Xiang

[FFmpeg-devel] [PATCH 2/3] lavc/vaapi_decode: Use dynamic frame pool if possible

2024-03-27 Thread Xiang, Haihao
From: Haihao Xiang This allows a downstream element stores more frames from VAAPI decoders and fixes the broke cases for the driver/hardware combination which doesn't rely on fixed surface-array. For example: $ ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi \ -i input.mp4 -c:v hevc_vaapi -f

[FFmpeg-devel] [PATCH 1/3] lavu/hwcontext_vaapi: Add a new quirk

2024-03-27 Thread Xiang, Haihao
From: Haihao Xiang libva2 doesn't require a fixed surface-array any more, but some driver/hardware combinations which rely on this are still used. To reduce the impact to users, add a quirk for the driver/hardware combination which supports dynamic surface pool. Signed-off-by: Haihao Xiang ---

[FFmpeg-devel] [PATCH] lavc/vaapi_hevc: Add support for Main Intra & Main 10 Intra

2024-03-27 Thread Xiang, Haihao
From: Haihao Xiang Both Main Intra and Main 10 Intra are Rext, we may use Main and Main 10 instead for decoding. This patch fixes the error below: [hevc @ 0x55a771b80a00] No support for codec hevc profile 4. [hevc @ 0x55a771b80a00] Failed setup for format vaapi: hwaccel initialisation returned

Re: [FFmpeg-devel] [PATCH] avcodec/d3d12va_decode: remove extra spaces for declaration

2024-03-25 Thread Xiang, Haihao
On Di, 2024-03-19 at 16:02 +0800, tong1.wu-at-intel@ffmpeg.org wrote: > From: Tong Wu > > Signed-off-by: Tong Wu > --- >  libavcodec/d3d12va_decode.c | 4 ++-- >  1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/d3d12va_decode.c b/libavcodec/d3d12va_decode.c >

Re: [FFmpeg-devel] [PATCH v3 2/2] lavc/get_buffer: Add a warning on failed allocation from a fixed pool

2024-03-25 Thread Xiang, Haihao
On Di, 2024-03-19 at 22:52 +, Mark Thompson wrote: > On 19/03/2024 04:16, Xiang, Haihao wrote: > > On Ma, 2024-03-18 at 21:33 +, Mark Thompson wrote: > > > On 18/03/2024 05:53, Xiang, Haihao wrote: > > > > On So, 2024-03-17 at 20:51 +, Mark Thompson wrote

Re: [FFmpeg-devel] [PATCH] avutil/hwcontext_qsv: Fix mixed declaration and code

2024-03-25 Thread Xiang, Haihao
On So, 2024-03-24 at 21:30 +0100, Andreas Rheinhardt wrote: > Signed-off-by: Andreas Rheinhardt > --- >  libavutil/hwcontext_qsv.c | 4 ++-- >  1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c > index e5e043d2d1..c7c7878644

Re: [FFmpeg-devel] [PATCH v3 2/2] lavc/get_buffer: Add a warning on failed allocation from a fixed pool

2024-03-18 Thread Xiang, Haihao
On Ma, 2024-03-18 at 21:33 +, Mark Thompson wrote: > On 18/03/2024 05:53, Xiang, Haihao wrote: > > On So, 2024-03-17 at 20:51 +, Mark Thompson wrote: > > > For hardware cases where we are forced to have a fixed pool of frames > > > allocated up-front (such a

Re: [FFmpeg-devel] [PATCH] lavu/hwcontext_vulkan: check PCI ID if possible

2024-03-18 Thread Xiang, Haihao
On Ma, 2024-03-18 at 18:41 +0100, Lynne wrote: > Mar 18, 2024, 08:27 by haihao.xiang-at-intel@ffmpeg.org: > > > From: Haihao Xiang > > > > Otherwise the derived device and the source device might have different > > PCI ID in a multiple-device system. > > > > Signed-off-by: Haihao Xiang >

[FFmpeg-devel] [PATCH 3/3] lavfi/tonemap_vaapi: Add support for HDR to HDR tone mapping

2024-03-18 Thread Xiang, Haihao
From: Xinpeng Sun Usage example: ffmpeg -y -hwaccel vaapi -hwaccel_output_format vaapi -i hdr.mp4 \ -vf "tonemap_vaapi=display=7500 3000|34000 16000|13250 34500|15635 16450|500 1000:extra_hw_frames=64" \ -c:v hevc_vaapi output.mp4 Signed-off-by: Xinpeng Sun Signed-off-by: Haihao Xiang

[FFmpeg-devel] [PATCH 2/3] lavfi/tonemap_vaapi: Update the log

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang demote the message to AV_LOG_VERBOSE. Signed-off-by: Haihao Xiang --- libavfilter/vf_tonemap_vaapi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/vf_tonemap_vaapi.c b/libavfilter/vf_tonemap_vaapi.c index a21f565e3a..5d475e8ff2 100644 ---

[FFmpeg-devel] [PATCH 1/3] lavfi/tonemap_vaapi: By default use bt709 for output frame

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang By default don't use the color properties from input frame as output frame properties when performing HDR to SDR conversion Signed-off-by: Haihao Xiang --- doc/filters.texi | 4 ++-- libavfilter/vf_tonemap_vaapi.c | 7 +-- 2 files changed, 7 insertions(+),

Re: [FFmpeg-devel] [PATCH] lavu/hwcontext_vulkan: check both vendor and PCI IDs

2024-03-18 Thread Xiang, Haihao
On Ma, 2024-03-18 at 07:39 +0100, Lynne wrote: > Mar 18, 2024, 07:33 by haihao.xiang-at-intel@ffmpeg.org: > > > On Ma, 2024-03-18 at 07:18 +0100, Lynne wrote: > > > > > Mar 18, 2024, 06:57 by haihao.xiang-at-intel@ffmpeg.org: > > > > > > >

[FFmpeg-devel] [PATCH] lavu/hwcontext_vulkan: check PCI ID if possible

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang Otherwise the derived device and the source device might have different PCI ID in a multiple-device system. Signed-off-by: Haihao Xiang --- libavutil/hwcontext_vulkan.c | 30 +++--- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git

Re: [FFmpeg-devel] [PATCH] lavu/hwcontext_vulkan: check both vendor and PCI IDs

2024-03-18 Thread Xiang, Haihao
On Ma, 2024-03-18 at 07:18 +0100, Lynne wrote: > Mar 18, 2024, 06:57 by haihao.xiang-at-intel@ffmpeg.org: > > > On Vr, 2024-03-08 at 15:13 +0800, Xiang, Haihao wrote: > > > > > From: Haihao Xiang > > > > > > Otherwise the derived device and the

[FFmpeg-devel] [PATCH 3/3] Changelog: Add pad_vaapi, drawbox_vaapi entry

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- Changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog b/Changelog index b7d7535a9e..27da4b77f0 100644 --- a/Changelog +++ b/Changelog @@ -34,6 +34,7 @@ version : - ffprobe (with -export_side_data film_grain) now prints film

[FFmpeg-devel] [PATCH 2/3] lavfi: Add drawbox_vaapi filter

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- configure | 1 + doc/filters.texi | 85 libavfilter/Makefile | 1 + libavfilter/allfilters.c | 1 + libavfilter/vf_drawbox_vaapi.c | 369 + 5

[FFmpeg-devel] [PATCH 1/3] lavfi: Add pad_vaapi filter

2024-03-18 Thread Xiang, Haihao
From: Haihao Xiang Signed-off-by: Haihao Xiang --- configure | 1 + doc/filters.texi | 77 ++ libavfilter/Makefile | 1 + libavfilter/allfilters.c | 1 + libavfilter/vf_pad_vaapi.c | 283 + 5 files changed,

Re: [FFmpeg-devel] [PATCH v3] lavc/vaapi_encode: Enable block level bitrate control

2024-03-18 Thread Xiang, Haihao
On Vr, 2024-03-15 at 02:46 +, Xiang, Haihao wrote: > On Vr, 2024-03-08 at 16:45 +0800, fei.w.wang-at-intel@ffmpeg.org wrote: > > From: Fei Wang > > > > Signed-off-by: Fei Wang > > --- > >  doc/encoders.texi |  4 &g

  1   2   3   4   5   6   7   8   9   10   >