* [FFmpeg-devel] [PATCH] lavfi: protection against premultiplied alpha (was: The patch series about premultiplied alpha)
2025-08-03 15:49 ` Nicolas George
@ 2025-08-03 18:15 ` Nicolas George
2025-08-03 20:04 ` Michael Niedermayer
0 siblings, 1 reply; 9+ messages in thread
From: Nicolas George @ 2025-08-03 18:15 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1: Type: text/plain, Size: 474 bytes --]
Nicolas George (HE12025-08-03):
> I will send the series here in a few hours.
Here is a series of patch. I am absolutely not sure I found all the
filters that could be flagged, but the rest can be done as the need
arises.
Not tested every filter, but it is pretty straightforward.
I could not find how to download your patch series in a format suitable
for git am from the monster, I used the v2 series, but it should not
change anything.
Regards,
--
Nicolas George
[-- Attachment #2: 0001-lavfi-add-a-flag-for-filters-that-support-premultipl.patch --]
[-- Type: text/x-diff, Size: 1707 bytes --]
From e7867075c4dc4bb244798c096e484d3cfaf10254 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:34:08 +0200
Subject: [PATCH 01/39] lavfi: add a flag for filters that support
premultiplied alpha
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/avfilter.c | 7 +++++++
libavfilter/filters.h | 6 ++++++
2 files changed, 13 insertions(+)
diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 5bcf0b4ef7..2f425b529c 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -1097,6 +1097,13 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame)
link->time_base);
}
+ if ((frame->alpha_mode == AVALPHA_MODE_PREMULTIPLIED) &&
+ !(link->dstpad->flags & AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED)) {
+ av_log(link->dst, AV_LOG_ERROR, "Frames with premultiplied alpha are not supported by this filter.\n");
+ av_frame_free(&frame);
+ return AVERROR_PATCHWELCOME;
+ }
+
li->frame_blocked_in = li->frame_wanted_out = 0;
li->l.frame_count_in++;
li->l.sample_count_in += frame->nb_samples;
diff --git a/libavfilter/filters.h b/libavfilter/filters.h
index 11152cfabf..8b431bd457 100644
--- a/libavfilter/filters.h
+++ b/libavfilter/filters.h
@@ -62,6 +62,12 @@ struct AVFilterPad {
*/
#define AVFILTERPAD_FLAG_FREE_NAME (1 << 1)
+ /**
+ * The filter is capable of handling frame with premultiplied alpha
+ * without producing garbled output
+ */
+#define AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED (1 << 2)
+
/**
* A combination of AVFILTERPAD_FLAG_* flags.
*/
--
2.47.2
[-- Attachment #3: 0002-lavfi-vf_stack-check-alp-a-mode-consistency.patch --]
[-- Type: text/x-diff, Size: 1900 bytes --]
From e48d82211e62cb9199d722f7218cfccbd0c77741 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:41:02 +0200
Subject: [PATCH 02/39] =?UTF-8?q?lavfi/vf=5Fstack:=20check=20alp=C4=A5a=20?=
=?UTF-8?q?mode=20consistency?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_stack.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
index fa202ee0cc..981f644cd2 100644
--- a/libavfilter/vf_stack.c
+++ b/libavfilter/vf_stack.c
@@ -135,6 +135,7 @@ static av_cold int init(AVFilterContext *ctx)
pad.name = av_asprintf("input%d", i);
if (!pad.name)
return AVERROR(ENOMEM);
+ pad.flags |= AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED;
if ((ret = ff_append_inpad_free_name(ctx, &pad)) < 0)
return ret;
@@ -166,6 +167,17 @@ static int process_slice(AVFilterContext *ctx, void *arg, int job, int nb_jobs)
return 0;
}
+static int check_premult_consistent(AVFrame * const *frames, unsigned nb_frames)
+{
+ unsigned m = 0, i;
+ for (i = 0; i < nb_frames; i++) {
+ m |= frames[i]->alpha_mode == AVALPHA_MODE_PREMULTIPLIED ? 2 : 1;
+ if (m == 3)
+ return 0;
+ }
+ return 1;
+}
+
static int process_frame(FFFrameSync *fs)
{
AVFilterContext *ctx = fs->parent;
@@ -179,6 +191,10 @@ static int process_frame(FFFrameSync *fs)
if ((ret = ff_framesync_get_frame(&s->fs, i, &in[i], 0)) < 0)
return ret;
}
+ if (!check_premult_consistent(in, s->nb_inputs)) {
+ av_log(ctx, AV_LOG_ERROR, "All frames must have the same alpha mode.\n");
+ return AVERROR(EINVAL);
+ }
out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
if (!out)
--
2.47.2
[-- Attachment #4: 0003-lavfi-video-add-ff_video_default_filterpad_premult_o.patch --]
[-- Type: text/x-diff, Size: 1658 bytes --]
From 84549c11729027093c0fc974a24631e7e3c22ae9 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:35:08 +0200
Subject: [PATCH 03/39] lavfi/video: add ff_video_default_filterpad_premult_ok
helper
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/video.c | 8 ++++++++
libavfilter/video.h | 7 +++++++
2 files changed, 15 insertions(+)
diff --git a/libavfilter/video.c b/libavfilter/video.c
index 1de7f2ef59..462160846f 100644
--- a/libavfilter/video.c
+++ b/libavfilter/video.c
@@ -41,6 +41,14 @@ const AVFilterPad ff_video_default_filterpad[1] = {
}
};
+const AVFilterPad ff_video_default_filterpad_premult_ok[1] = {
+ {
+ .name = "default",
+ .type = AVMEDIA_TYPE_VIDEO,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
+ }
+};
+
AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h)
{
return ff_get_video_buffer(link->dst->outputs[0], w, h);
diff --git a/libavfilter/video.h b/libavfilter/video.h
index f44d3445dc..2292fe1caf 100644
--- a/libavfilter/video.h
+++ b/libavfilter/video.h
@@ -30,6 +30,13 @@
*/
extern const AVFilterPad ff_video_default_filterpad[1];
+/**
+ * An AVFilterPad array whose only entry has name "default"
+ * and is of type AVMEDIA_TYPE_VIDEO, with the
+ * AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED flag
+ */
+extern const AVFilterPad ff_video_default_filterpad_premult_ok[1];
+
AVFrame *ff_default_get_video_buffer(AVFilterLink *link, int w, int h);
AVFrame *ff_default_get_video_buffer2(AVFilterLink *link, int w, int h, int align);
AVFrame *ff_null_get_video_buffer(AVFilterLink *link, int w, int h);
--
2.47.2
[-- Attachment #5: 0004-lavfi-vf_null-use-ff_video_default_filterpad_premult.patch --]
[-- Type: text/x-diff, Size: 899 bytes --]
From 61ba67d98e26140f9bcd12b1f5dfdb430cfb77c3 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:37:43 +0200
Subject: [PATCH 04/39] lavfi/vf_null: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_null.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_null.c b/libavfilter/vf_null.c
index 7071cc959f..676b81e346 100644
--- a/libavfilter/vf_null.c
+++ b/libavfilter/vf_null.c
@@ -30,6 +30,6 @@ const FFFilter ff_vf_null = {
.p.name = "null",
.p.description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
.p.flags = AVFILTER_FLAG_METADATA_ONLY,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(ff_video_default_filterpad),
};
--
2.47.2
[-- Attachment #6: 0005-lavfi-vf_fps-use-ff_video_default_filterpad_premult_.patch --]
[-- Type: text/x-diff, Size: 819 bytes --]
From a8d9f0af1601a9eb28721694a74169f36b483d8c Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:37:55 +0200
Subject: [PATCH 05/39] lavfi/vf_fps: use ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_fps.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c
index 0257a8ef78..443dc0ee1e 100644
--- a/libavfilter/vf_fps.c
+++ b/libavfilter/vf_fps.c
@@ -395,6 +395,6 @@ const FFFilter ff_vf_fps = {
.uninit = uninit,
.priv_size = sizeof(FPSContext),
.activate = activate,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(avfilter_vf_fps_outputs),
};
--
2.47.2
[-- Attachment #7: 0006-lavfi-buffersink-use-ff_video_default_filterpad_prem.patch --]
[-- Type: text/x-diff, Size: 850 bytes --]
From f5df1d7b7c0a71f2d9d68b459254f44a83cc3e63 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:38:10 +0200
Subject: [PATCH 06/39] lavfi/buffersink: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/buffersink.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index 50a7da2756..1033bf76d2 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -553,7 +553,7 @@ const FFFilter ff_vsink_buffer = {
.init = init_video,
.uninit = uninit,
.activate = activate,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_QUERY_FUNC2(vsink_query_formats),
};
--
2.47.2
[-- Attachment #8: 0007-lavfi-settb-use-ff_video_default_filterpad_premult_o.patch --]
[-- Type: text/x-diff, Size: 878 bytes --]
From c5f62c126faab2840c41a1f0dba467d6ba21193a Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:38:25 +0200
Subject: [PATCH 07/39] lavfi/settb: use ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/settb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/settb.c b/libavfilter/settb.c
index 6000c9c5a6..a68b0c1f80 100644
--- a/libavfilter/settb.c
+++ b/libavfilter/settb.c
@@ -178,7 +178,7 @@ const FFFilter ff_vf_settb = {
.p.priv_class = &settb_class,
.p.flags = AVFILTER_FLAG_METADATA_ONLY,
.priv_size = sizeof(SetTBContext),
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(avfilter_vf_settb_outputs),
.activate = activate,
};
--
2.47.2
[-- Attachment #9: 0008-lavfi-vf_untile-use-ff_video_default_filterpad_premu.patch --]
[-- Type: text/x-diff, Size: 881 bytes --]
From 06d243dfce61c99d22f6d157b55a0ae18d2f9cf5 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:39:15 +0200
Subject: [PATCH 08/39] lavfi/vf_untile: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_untile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_untile.c b/libavfilter/vf_untile.c
index 6c1bfbabdc..655c05acc8 100644
--- a/libavfilter/vf_untile.c
+++ b/libavfilter/vf_untile.c
@@ -184,7 +184,7 @@ const FFFilter ff_vf_untile = {
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(UntileContext),
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(untile_outputs),
FILTER_QUERY_FUNC2(query_formats),
};
--
2.47.2
[-- Attachment #10: 0009-lavfi-vf_fsync-use-ff_video_default_filterpad_premul.patch --]
[-- Type: text/x-diff, Size: 855 bytes --]
From f2ca298afbae767bcd0fbd7e7ceca0aafb2a200f Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:39:47 +0200
Subject: [PATCH 09/39] lavfi/vf_fsync: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_fsync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_fsync.c b/libavfilter/vf_fsync.c
index 02f10a9bd8..f5cd202975 100644
--- a/libavfilter/vf_fsync.c
+++ b/libavfilter/vf_fsync.c
@@ -298,6 +298,6 @@ const FFFilter ff_vf_fsync = {
.priv_size = sizeof(FsyncContext),
.activate = activate,
.formats_state = FF_FILTER_FORMATS_PASSTHROUGH,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(fsync_outputs),
};
--
2.47.2
[-- Attachment #11: 0010-lavfi-vf_separatefields-use-ff_video_default_filterp.patch --]
[-- Type: text/x-diff, Size: 907 bytes --]
From b7fbbcc2cce6c344b750eefb8f9b1c9c30d8d017 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:38 +0200
Subject: [PATCH 10/39] lavfi/vf_separatefields: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_separatefields.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/vf_separatefields.c b/libavfilter/vf_separatefields.c
index c0c0640dcc..f32a147b96 100644
--- a/libavfilter/vf_separatefields.c
+++ b/libavfilter/vf_separatefields.c
@@ -172,6 +172,6 @@ const FFFilter ff_vf_separatefields = {
.priv_size = sizeof(SeparateFieldsContext),
.activate = activate,
.uninit = uninit,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(separatefields_outputs),
};
--
2.47.2
[-- Attachment #12: 0011-lavfi-f_cue-use-ff_video_default_filterpad_premult_o.patch --]
[-- Type: text/x-diff, Size: 906 bytes --]
From 43e1dfce32217775cc3fba8da14adb61761c69b2 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:41:28 +0200
Subject: [PATCH 11/39] lavfi/f_cue: use ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/f_cue.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c
index 63027c7c2e..d38f83e6a5 100644
--- a/libavfilter/f_cue.c
+++ b/libavfilter/f_cue.c
@@ -105,7 +105,7 @@ const FFFilter ff_vf_cue = {
.p.description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."),
.p.priv_class = &cue_acue_class,
.priv_size = sizeof(CueContext),
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(ff_video_default_filterpad),
.activate = activate,
};
--
2.47.2
[-- Attachment #13: 0012-lavfi-f_latency-use-ff_video_default_filterpad_premu.patch --]
[-- Type: text/x-diff, Size: 839 bytes --]
From c2189e67e03767ee872792a6782dcb3ec057d779 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:41:36 +0200
Subject: [PATCH 12/39] lavfi/f_latency: use
ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/f_latency.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/f_latency.c b/libavfilter/f_latency.c
index 00b55ddb4b..e82ac316ee 100644
--- a/libavfilter/f_latency.c
+++ b/libavfilter/f_latency.c
@@ -109,7 +109,7 @@ const FFFilter ff_vf_latency = {
.init = init,
.uninit = uninit,
.activate = activate,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(ff_video_default_filterpad),
};
--
2.47.2
[-- Attachment #14: 0013-lavfi-f_loop-use-ff_video_default_filterpad_premult_.patch --]
[-- Type: text/x-diff, Size: 842 bytes --]
From ae04f4daa340e9f7094580278671014f5539d774 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:41:45 +0200
Subject: [PATCH 13/39] lavfi/f_loop: use ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/f_loop.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index 1984fad70d..d437d4ad54 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -464,7 +464,7 @@ const FFFilter ff_vf_loop = {
.init = init,
.uninit = uninit,
.activate = activate,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
FILTER_OUTPUTS(ff_video_default_filterpad),
};
#endif /* CONFIG_LOOP_FILTER */
--
2.47.2
[-- Attachment #15: 0014-lavfi-split-use-ff_video_default_filterpad_premult_o.patch --]
[-- Type: text/x-diff, Size: 810 bytes --]
From 6dc1ef0d7f99cd23659e616429bee1ca752f916f Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:41:52 +0200
Subject: [PATCH 14/39] lavfi/split: use ff_video_default_filterpad_premult_ok
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/split.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavfilter/split.c b/libavfilter/split.c
index d0bd0c3b2a..831a2e9170 100644
--- a/libavfilter/split.c
+++ b/libavfilter/split.c
@@ -132,7 +132,7 @@ const FFFilter ff_vf_split = {
.priv_size = sizeof(SplitContext),
.init = split_init,
.activate = activate,
- FILTER_INPUTS(ff_video_default_filterpad),
+ FILTER_INPUTS(ff_video_default_filterpad_premult_ok),
};
const FFFilter ff_af_asplit = {
--
2.47.2
[-- Attachment #16: 0015-lavfi-vf_format-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTI.patch --]
[-- Type: text/x-diff, Size: 798 bytes --]
From 9cb8a71cddfd32f3a15031efe041446b1a8a0723 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:37:00 +0200
Subject: [PATCH 15/39] lavfi/vf_format: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_format.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index ae91b9655a..3529e40e8b 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -180,6 +180,7 @@ static const AVFilterPad inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.get_buffer.video = ff_null_get_video_buffer,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #17: 0016-lavfi-vf_scale-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIP.patch --]
[-- Type: text/x-diff, Size: 1240 bytes --]
From c437bf3d55d2346e64243530b7be873e18fc3a23 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:37:31 +0200
Subject: [PATCH 16/39] lavfi/vf_scale: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_scale.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 54cd0b12b6..a4b331ddaf 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -1168,6 +1168,7 @@ static const AVFilterPad avfilter_vf_scale_inputs[] = {
{
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
@@ -1225,11 +1226,13 @@ static const AVFilterPad avfilter_vf_scale2ref_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
{
.name = "ref",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame_ref,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #18: 0017-lavfi-vf_aspect-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTI.patch --]
[-- Type: text/x-diff, Size: 781 bytes --]
From c0c478a6b1e0f4ec4b4c3c9d7a74823d5d0ef251 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:38:35 +0200
Subject: [PATCH 17/39] lavfi/vf_aspect: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_aspect.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 7ec1035336..7816c9934c 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -132,6 +132,7 @@ static const AVFilterPad aspect_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #19: 0018-lavfi-vf_setparams-set-AVFILTERPAD_FLAG_ACCEPT_PREMU.patch --]
[-- Type: text/x-diff, Size: 792 bytes --]
From 8d83718c4fc909dd91d6c1854bd2fff048fa53f1 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:38:50 +0200
Subject: [PATCH 18/39] lavfi/vf_setparams: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_setparams.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index 5043ae6e65..a2211cef8d 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -206,6 +206,7 @@ static const AVFilterPad inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #20: 0019-lavfi-vf_copy-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIPL.patch --]
[-- Type: text/x-diff, Size: 777 bytes --]
From e795f7e514e3e23a516d5f2ca9162a62f57edc11 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:39:24 +0200
Subject: [PATCH 19/39] lavfi/vf_copy: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_copy.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_copy.c b/libavfilter/vf_copy.c
index c6d5191901..76537fe3e4 100644
--- a/libavfilter/vf_copy.c
+++ b/libavfilter/vf_copy.c
@@ -66,6 +66,7 @@ static const AVFilterPad avfilter_vf_copy_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #21: 0020-lavfi-vf_vfrdet-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTI.patch --]
[-- Type: text/x-diff, Size: 779 bytes --]
From 2ef259981ae8a8fb91865716dfb33ed05b6e6d37 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:39:36 +0200
Subject: [PATCH 20/39] lavfi/vf_vfrdet: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_vfrdet.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_vfrdet.c b/libavfilter/vf_vfrdet.c
index f99bc71de7..7500afb998 100644
--- a/libavfilter/vf_vfrdet.c
+++ b/libavfilter/vf_vfrdet.c
@@ -94,6 +94,7 @@ static const AVFilterPad vfrdet_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #22: 0021-lavfi-vf_framestep-set-AVFILTERPAD_FLAG_ACCEPT_PREMU.patch --]
[-- Type: text/x-diff, Size: 800 bytes --]
From 8905930c9d318d47c0406f38d634b902ed3a6b1c Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:39:55 +0200
Subject: [PATCH 21/39] lavfi/vf_framestep: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_framestep.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_framestep.c b/libavfilter/vf_framestep.c
index 02beda6cf3..76eeac30d2 100644
--- a/libavfilter/vf_framestep.c
+++ b/libavfilter/vf_framestep.c
@@ -79,6 +79,7 @@ static const AVFilterPad framestep_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #23: 0022-lavfi-vf_ccrepack-set-AVFILTERPAD_FLAG_ACCEPT_PREMUL.patch --]
[-- Type: text/x-diff, Size: 808 bytes --]
From d9676eb568a6567bb8052320e41cc201df68d1d0 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:03 +0200
Subject: [PATCH 22/39] lavfi/vf_ccrepack: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_ccrepack.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_ccrepack.c b/libavfilter/vf_ccrepack.c
index f3f0c69676..bc17f97bac 100644
--- a/libavfilter/vf_ccrepack.c
+++ b/libavfilter/vf_ccrepack.c
@@ -84,6 +84,7 @@ static const AVFilterPad avfilter_vf_ccrepack_inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
.config_props = config_input,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #24: 0023-lavfi-vf_dejudder-set-AVFILTERPAD_FLAG_ACCEPT_PREMUL.patch --]
[-- Type: text/x-diff, Size: 795 bytes --]
From 33fe0ee504510badc1dc4393232c2b3a4c39f21a Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:10 +0200
Subject: [PATCH 23/39] lavfi/vf_dejudder: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_dejudder.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_dejudder.c b/libavfilter/vf_dejudder.c
index 9d0c4717d2..875842314e 100644
--- a/libavfilter/vf_dejudder.c
+++ b/libavfilter/vf_dejudder.c
@@ -163,6 +163,7 @@ static const AVFilterPad dejudder_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #25: 0024-lavfi-vf_iccgen-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTI.patch --]
[-- Type: text/x-diff, Size: 794 bytes --]
From 19cb9e06457b565ed77c2389703ed444f2bdb41b Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:15 +0200
Subject: [PATCH 24/39] lavfi/vf_iccgen: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_iccgen.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_iccgen.c b/libavfilter/vf_iccgen.c
index 06c5b4ebdc..c1e41c7644 100644
--- a/libavfilter/vf_iccgen.c
+++ b/libavfilter/vf_iccgen.c
@@ -159,6 +159,7 @@ static const AVFilterPad iccgen_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = iccgen_filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #26: 0025-lavfi-vf_premultiply-set-AVFILTERPAD_FLAG_ACCEPT_PRE.patch --]
[-- Type: text/x-diff, Size: 884 bytes --]
From f48375aa798c90914552fe5be1b81b1ddcefebed Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:23 +0200
Subject: [PATCH 25/39] lavfi/vf_premultiply: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_premultiply.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index 3232ba0ee2..5087268224 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -798,6 +798,8 @@ static av_cold int init(AVFilterContext *ctx)
pad.type = AVMEDIA_TYPE_VIDEO;
pad.name = "main";
pad.config_props = config_input;
+ if (s->inverse)
+ pad.flags |= AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED;
if ((ret = ff_append_inpad(ctx, &pad)) < 0)
return ret;
--
2.47.2
[-- Attachment #27: 0026-lavfi-vf_random-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTI.patch --]
[-- Type: text/x-diff, Size: 781 bytes --]
From 4e9ae2107111d2418477df294ba287697fb8585a Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:30 +0200
Subject: [PATCH 26/39] lavfi/vf_random: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_random.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_random.c b/libavfilter/vf_random.c
index ca95ca2c10..6c69daeeec 100644
--- a/libavfilter/vf_random.c
+++ b/libavfilter/vf_random.c
@@ -130,6 +130,7 @@ static const AVFilterPad random_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #28: 0027-lavfi-vf_shuffleframes-set-AVFILTERPAD_FLAG_ACCEPT_P.patch --]
[-- Type: text/x-diff, Size: 830 bytes --]
From 9fe38c1f663f3edadf8f6422eafac53d32a052e6 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:40:47 +0200
Subject: [PATCH 27/39] lavfi/vf_shuffleframes: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_shuffleframes.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_shuffleframes.c b/libavfilter/vf_shuffleframes.c
index 7d16fcc497..5756431b00 100644
--- a/libavfilter/vf_shuffleframes.c
+++ b/libavfilter/vf_shuffleframes.c
@@ -144,6 +144,7 @@ static const AVFilterPad shuffleframes_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #29: 0028-lavfi-vf_overlay-set-AVFILTERPAD_FLAG_ACCEPT_PREMULT.patch --]
[-- Type: text/x-diff, Size: 1013 bytes --]
From 87227184fe87f115fbd17296706a612434164a0b Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:53:10 +0200
Subject: [PATCH 28/39] lavfi/vf_overlay: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_overlay.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
index 8eb4218542..22d0a288f5 100644
--- a/libavfilter/vf_overlay.c
+++ b/libavfilter/vf_overlay.c
@@ -983,11 +983,13 @@ static const AVFilterPad avfilter_vf_overlay_inputs[] = {
.name = "main",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input_main,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
{
.name = "overlay",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input_overlay,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #30: 0029-lavfi-f_select-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIP.patch --]
[-- Type: text/x-diff, Size: 846 bytes --]
From 6e1ac54c782ce2ba4c0399248c64e6cc457ef737 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:54:11 +0200
Subject: [PATCH 29/39] lavfi/f_select: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Assume a very transparent frame counts as a scene change.
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/f_select.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index 46208a7b76..bc2ac66df6 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -549,6 +549,7 @@ static const AVFilterPad avfilter_vf_select_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #31: 0030-lavfi-vf_bbox-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIPL.patch --]
[-- Type: text/x-diff, Size: 767 bytes --]
From 3d7193456082c9f7f792307b052e365aae35df41 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:55:47 +0200
Subject: [PATCH 30/39] lavfi/vf_bbox: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_bbox.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c
index 9631613ff4..62b16ec968 100644
--- a/libavfilter/vf_bbox.c
+++ b/libavfilter/vf_bbox.c
@@ -133,6 +133,7 @@ static const AVFilterPad bbox_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #32: 0031-lavfi-vf_blackdetect-set-AVFILTERPAD_FLAG_ACCEPT_PRE.patch --]
[-- Type: text/x-diff, Size: 865 bytes --]
From f96bcd8a0a946c5fbda64217bafc4c1db2a72db9 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 19:56:52 +0200
Subject: [PATCH 31/39] lavfi/vf_blackdetect: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Assume very transparent counts as black.
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_blackdetect.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c
index b233bdfd60..628495560a 100644
--- a/libavfilter/vf_blackdetect.c
+++ b/libavfilter/vf_blackdetect.c
@@ -249,6 +249,7 @@ static const AVFilterPad blackdetect_inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #33: 0032-lavfi-vf_pixdesctest-set-AVFILTERPAD_FLAG_ACCEPT_PRE.patch --]
[-- Type: text/x-diff, Size: 831 bytes --]
From 84293ddd1cc021097a75dd15376e40f1847c51ca Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:00:37 +0200
Subject: [PATCH 32/39] lavfi/vf_pixdesctest: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_pixdesctest.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_pixdesctest.c b/libavfilter/vf_pixdesctest.c
index 994fe1db93..128511049b 100644
--- a/libavfilter/vf_pixdesctest.c
+++ b/libavfilter/vf_pixdesctest.c
@@ -113,6 +113,7 @@ static const AVFilterPad avfilter_vf_pixdesctest_inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
.config_props = config_props,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #34: 0033-lavfi-vf_libplacebo-set-AVFILTERPAD_FLAG_ACCEPT_PREM.patch --]
[-- Type: text/x-diff, Size: 914 bytes --]
From 26e6e4313bf0c0eb9dfa4fc37d01e2644a9f5f78 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:00:50 +0200
Subject: [PATCH 33/39] lavfi/vf_libplacebo: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_libplacebo.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index 26ded247bc..89eb36e845 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -566,6 +566,7 @@ static int libplacebo_init(AVFilterContext *avctx)
.name = av_asprintf("input%d", i),
.type = AVMEDIA_TYPE_VIDEO,
.config_props = &libplacebo_config_input,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
};
if (!pad.name)
return AVERROR(ENOMEM);
--
2.47.2
[-- Attachment #35: 0034-lavfi-vf_field-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIP.patch --]
[-- Type: text/x-diff, Size: 772 bytes --]
From c5c8d0edd0d35c63ed7057e446cf7fde7c741601 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:07:17 +0200
Subject: [PATCH 34/39] lavfi/vf_field: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_field.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_field.c b/libavfilter/vf_field.c
index 40fcf73bc4..0905c64edc 100644
--- a/libavfilter/vf_field.c
+++ b/libavfilter/vf_field.c
@@ -88,6 +88,7 @@ static const AVFilterPad field_inputs[] = {
.name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #36: 0035-lavfi-vf_fieldhint-set-AVFILTERPAD_FLAG_ACCEPT_PREMU.patch --]
[-- Type: text/x-diff, Size: 795 bytes --]
From 79a372018b899142c45de6820754d2a30ba2765e Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:07:35 +0200
Subject: [PATCH 35/39] lavfi/vf_fieldhint: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_fieldhint.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_fieldhint.c b/libavfilter/vf_fieldhint.c
index 6f4403a48d..9680a16903 100644
--- a/libavfilter/vf_fieldhint.c
+++ b/libavfilter/vf_fieldhint.c
@@ -302,6 +302,7 @@ static const AVFilterPad inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #37: 0036-lavfi-vf_fieldmatch-set-AVFILTERPAD_FLAG_ACCEPT_PREM.patch --]
[-- Type: text/x-diff, Size: 824 bytes --]
From d22d3b3f6a51b438b3440f22e3a3cdb809bb129b Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:07:43 +0200
Subject: [PATCH 36/39] lavfi/vf_fieldmatch: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_fieldmatch.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_fieldmatch.c b/libavfilter/vf_fieldmatch.c
index 60b4a602cb..484a0ea173 100644
--- a/libavfilter/vf_fieldmatch.c
+++ b/libavfilter/vf_fieldmatch.c
@@ -989,6 +989,7 @@ static av_cold int fieldmatch_init(AVFilterContext *ctx)
.name = "main",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
};
int ret;
--
2.47.2
[-- Attachment #38: 0037-lavfi-vf_fieldorder-set-AVFILTERPAD_FLAG_ACCEPT_PREM.patch --]
[-- Type: text/x-diff, Size: 824 bytes --]
From b5bdd1448136333a77c97ea10f9a74f7dfb42434 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:07:50 +0200
Subject: [PATCH 37/39] lavfi/vf_fieldorder: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_fieldorder.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c
index fe999f27ea..0e288e86be 100644
--- a/libavfilter/vf_fieldorder.c
+++ b/libavfilter/vf_fieldorder.c
@@ -170,6 +170,7 @@ static const AVFilterPad avfilter_vf_fieldorder_inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
.filter_frame = filter_frame,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #39: 0038-lavfi-vf_hflip-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIP.patch --]
[-- Type: text/x-diff, Size: 789 bytes --]
From 2408c4ca68d53bf33ec397a4fa50d86d053882b2 Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:09:02 +0200
Subject: [PATCH 38/39] lavfi/vf_hflip: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_hflip.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c
index 8f8dd14240..0100867fc0 100644
--- a/libavfilter/vf_hflip.c
+++ b/libavfilter/vf_hflip.c
@@ -143,6 +143,7 @@ static const AVFilterPad avfilter_vf_hflip_inputs[] = {
.type = AVMEDIA_TYPE_VIDEO,
.filter_frame = filter_frame,
.config_props = config_props,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #40: 0039-lavfi-vf_vflip-set-AVFILTERPAD_FLAG_ACCEPT_PREMULTIP.patch --]
[-- Type: text/x-diff, Size: 803 bytes --]
From d28bde401f8aa7a43c20729686831865f39cd7cb Mon Sep 17 00:00:00 2001
From: Nicolas George <george@nsup.org>
Date: Sun, 3 Aug 2025 20:09:11 +0200
Subject: [PATCH 39/39] lavfi/vf_vflip: set
AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED
Signed-off-by: Nicolas George <george@nsup.org>
---
libavfilter/vf_vflip.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c
index 4e0411a457..135d630ab1 100644
--- a/libavfilter/vf_vflip.c
+++ b/libavfilter/vf_vflip.c
@@ -124,6 +124,7 @@ static const AVFilterPad avfilter_vf_vflip_inputs[] = {
.get_buffer.video = get_video_buffer,
.filter_frame = filter_frame,
.config_props = config_input,
+ .flags = AVFILTERPAD_FLAG_ACCEPT_PREMULTIPLIED,
},
};
--
2.47.2
[-- Attachment #41: Type: text/plain, Size: 251 bytes --]
_______________________________________________
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".
^ permalink raw reply [flat|nested] 9+ messages in thread