diff mbox series

[FFmpeg-devel,v3,1/3] avfilter/vf_bwdif: consider chroma subsampling when enforcing minimum dimensions

Message ID 0101018c2c2d9cdb-e6505ea7-5210-438b-8801-dd75d12b59ce-000000@us-west-2.amazonses.com
State New
Headers show
Series consider chroma subsampling for bwdif (including CUDA and Vulkan) | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Cosmin Stejerean Dec. 2, 2023, 8:17 p.m. UTC
From: Cosmin Stejerean <cosmin@cosmin.at>

Fixes #10688

Signed-off-by: Cosmin Stejerean <cosmin@cosmin.at>
---
 libavfilter/vf_bwdif.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Thomas Mundt Dec. 2, 2023, 10:02 p.m. UTC | #1
Cosmin Stejerean via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> schrieb am Sa.,
2. Dez. 2023, 21:17:

> From: Cosmin Stejerean <cosmin@cosmin.at>
>
> Fixes #10688
>
> Signed-off-by: Cosmin Stejerean <cosmin@cosmin.at>
> ---
>  libavfilter/vf_bwdif.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c
> index 137cd5ef13..353cd0b61a 100644
> --- a/libavfilter/vf_bwdif.c
> +++ b/libavfilter/vf_bwdif.c
> @@ -191,13 +191,14 @@ static int config_props(AVFilterLink *link)
>          return ret;
>      }
>
> -    if (link->w < 3 || link->h < 4) {
> -        av_log(ctx, AV_LOG_ERROR, "Video of less than 3 columns or 4
> lines is not supported\n");
> +    yadif->csp = av_pix_fmt_desc_get(link->format);
> +    yadif->filter = filter;
> +
> +    if (AV_CEIL_RSHIFT(link->w, yadif->csp->log2_chroma_w) < 3 ||
> AV_CEIL_RSHIFT(link->h, yadif->csp->log2_chroma_h) < 4) {
> +        av_log(ctx, AV_LOG_ERROR, "Video with planes less than 3 columns
> or 4 lines is not supported\n");
>          return AVERROR(EINVAL);
>      }
>
> -    yadif->csp = av_pix_fmt_desc_get(link->format);
> -    yadif->filter = filter;
>      ff_bwdif_init_filter_line(&s->dsp, yadif->csp->comp[0].depth);
>
>      return 0;
> --
> 2.42.1
>

LGTM, thanks.

>
Philip Langdale Dec. 6, 2023, 10:43 a.m. UTC | #2
On Sat, 2 Dec 2023 23:02:36 +0100
Thomas Mundt <tmundt75@gmail.com> wrote:

> 
> LGTM, thanks.
> 

I am going to squash the three commits and push. There's no real need
to put each filter in a separate diff when the logical change is
identical in all three.

Thanks,

--phil
Cosmin Stejerean Dec. 6, 2023, 4:23 p.m. UTC | #3
> On Dec 6, 2023, at 02:44, Philip Langdale via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> wrote:
> 
> On Sat, 2 Dec 2023 23:02:36 +0100
> Thomas Mundt <tmundt75@gmail.com> wrote:
> 
>> 
>> LGTM, thanks.
>> 
> 
> I am going to squash the three commits and push. There's no real need
> to put each filter in a separate diff when the logical change is
> identical in all three.
> 

Squashing sounds good to me.

- Cosmin
Michael Niedermayer Dec. 24, 2023, 8:06 p.m. UTC | #4
On Wed, Dec 06, 2023 at 06:43:50PM +0800, Philip Langdale via ffmpeg-devel wrote:
> On Sat, 2 Dec 2023 23:02:36 +0100
> Thomas Mundt <tmundt75@gmail.com> wrote:
> 
> > 
> > LGTM, thanks.
> > 
> 
> I am going to squash the three commits and push. There's no real need
> to put each filter in a separate diff when the logical change is
> identical in all three.

Did this fix "https://trac.ffmpeg.org/ticket/10688"
?

if so, please close it

thx

[...]
diff mbox series

Patch

diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c
index 137cd5ef13..353cd0b61a 100644
--- a/libavfilter/vf_bwdif.c
+++ b/libavfilter/vf_bwdif.c
@@ -191,13 +191,14 @@  static int config_props(AVFilterLink *link)
         return ret;
     }
 
-    if (link->w < 3 || link->h < 4) {
-        av_log(ctx, AV_LOG_ERROR, "Video of less than 3 columns or 4 lines is not supported\n");
+    yadif->csp = av_pix_fmt_desc_get(link->format);
+    yadif->filter = filter;
+
+    if (AV_CEIL_RSHIFT(link->w, yadif->csp->log2_chroma_w) < 3 || AV_CEIL_RSHIFT(link->h, yadif->csp->log2_chroma_h) < 4) {
+        av_log(ctx, AV_LOG_ERROR, "Video with planes less than 3 columns or 4 lines is not supported\n");
         return AVERROR(EINVAL);
     }
 
-    yadif->csp = av_pix_fmt_desc_get(link->format);
-    yadif->filter = filter;
     ff_bwdif_init_filter_line(&s->dsp, yadif->csp->comp[0].depth);
 
     return 0;