* [FFmpeg-devel] [PATCH 1/3] avfilter/vf_libplacebo: switch to new background API
@ 2025-02-19 17:29 Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 2/3] avfilter/vf_libplacebo: allow differing formats per input Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 3/3] avfilter/vf_libplacebo: set colorspace properties on all inputs Niklas Haas
0 siblings, 2 replies; 3+ messages in thread
From: Niklas Haas @ 2025-02-19 17:29 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Niklas Haas
From: Niklas Haas <git@haasn.dev>
Fixes a deprecation warning, and also fixes a bug where the depredated
skip_target_clearing option was not correctly mapped to the new API inside
libplacebo upstream.
Signed-off-by: Niklas Haas <git@haasn.dev>
Sponsored-by: nxtedition
---
libavfilter/vf_libplacebo.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index e1c6629f6d..ce2065cc35 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -887,8 +887,12 @@ static int output_frame(AVFilterContext *ctx, int64_t pts)
}
/* Draw first frame opaque, others with blending */
- opts->params.skip_target_clearing = false;
opts->params.blend_params = NULL;
+#if PL_API_VER >= 346
+ opts->params.background = opts->params.border = PL_CLEAR_COLOR;
+#else
+ opts->params.skip_target_clearing = false;
+#endif
for (int i = 0; i < s->nb_inputs; i++) {
LibplaceboInput *in = &s->inputs[i];
FilterLink *il = ff_filter_link(ctx->inputs[in->idx]);
@@ -899,8 +903,12 @@ static int output_frame(AVFilterContext *ctx, int64_t pts)
opts->params.skip_caching_single_frame = high_fps;
update_crops(ctx, in, &target, out->pts * av_q2d(outlink->time_base));
pl_render_image_mix(in->renderer, &in->mix, &target, &opts->params);
- opts->params.skip_target_clearing = true;
opts->params.blend_params = &pl_alpha_overlay;
+#if PL_API_VER >= 346
+ opts->params.background = opts->params.border = PL_CLEAR_SKIP;
+#else
+ opts->params.skip_target_clearing = true;
+#endif
}
if (outdesc->flags & AV_PIX_FMT_FLAG_HWACCEL) {
--
2.47.0
_______________________________________________
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] 3+ messages in thread
* [FFmpeg-devel] [PATCH 2/3] avfilter/vf_libplacebo: allow differing formats per input
2025-02-19 17:29 [FFmpeg-devel] [PATCH 1/3] avfilter/vf_libplacebo: switch to new background API Niklas Haas
@ 2025-02-19 17:29 ` Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 3/3] avfilter/vf_libplacebo: set colorspace properties on all inputs Niklas Haas
1 sibling, 0 replies; 3+ messages in thread
From: Niklas Haas @ 2025-02-19 17:29 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Niklas Haas
From: Niklas Haas <git@haasn.dev>
Each input is entirely independent and can have varying pixel formats,
color spaces, etc. To accomplish this, we need to make a full copy of the
format list for each subsequent input, rather than sharing the same ref.
Signed-off-by: Niklas Haas <git@haasn.dev>
Sponsored-by: nxtedition
---
libavfilter/vf_libplacebo.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index ce2065cc35..6eeda7f252 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -1146,8 +1146,16 @@ static int libplacebo_query_format(const AVFilterContext *ctx,
goto fail;
}
- for (int i = 0; i < s->nb_inputs; i++)
+ for (int i = 0; i < s->nb_inputs; i++) {
+ if (i > 0) {
+ /* Duplicate the format list for each subsequent input */
+ infmts = NULL;
+ for (int n = 0; n < cfg_in[0]->formats->nb_formats; n++)
+ RET(ff_add_format(&infmts, cfg_in[0]->formats->formats[n]));
+ }
RET(ff_formats_ref(infmts, &cfg_in[i]->formats));
+ }
+
RET(ff_formats_ref(outfmts, &cfg_out[0]->formats));
/* Set colorspace properties */
--
2.47.0
_______________________________________________
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] 3+ messages in thread
* [FFmpeg-devel] [PATCH 3/3] avfilter/vf_libplacebo: set colorspace properties on all inputs
2025-02-19 17:29 [FFmpeg-devel] [PATCH 1/3] avfilter/vf_libplacebo: switch to new background API Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 2/3] avfilter/vf_libplacebo: allow differing formats per input Niklas Haas
@ 2025-02-19 17:29 ` Niklas Haas
1 sibling, 0 replies; 3+ messages in thread
From: Niklas Haas @ 2025-02-19 17:29 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Niklas Haas
From: Niklas Haas <git@haasn.dev>
There is no reason to only do this on the first input. It doesn't actually
matter for now given that we don't constrain the color space list, but it
may matter when that changes.
Signed-off-by: Niklas Haas <git@haasn.dev>
---
libavfilter/vf_libplacebo.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_libplacebo.c b/libavfilter/vf_libplacebo.c
index 6eeda7f252..801afe1bee 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -1154,14 +1154,12 @@ static int libplacebo_query_format(const AVFilterContext *ctx,
RET(ff_add_format(&infmts, cfg_in[0]->formats->formats[n]));
}
RET(ff_formats_ref(infmts, &cfg_in[i]->formats));
+ RET(ff_formats_ref(ff_all_color_spaces(), &cfg_in[i]->color_spaces));
+ RET(ff_formats_ref(ff_all_color_ranges(), &cfg_in[i]->color_ranges));
}
RET(ff_formats_ref(outfmts, &cfg_out[0]->formats));
- /* Set colorspace properties */
- RET(ff_formats_ref(ff_all_color_spaces(), &cfg_in[0]->color_spaces));
- RET(ff_formats_ref(ff_all_color_ranges(), &cfg_in[0]->color_ranges));
-
outfmts = s->colorspace > 0 ? ff_make_formats_list_singleton(s->colorspace)
: ff_all_color_spaces();
RET(ff_formats_ref(outfmts, &cfg_out[0]->color_spaces));
--
2.47.0
_______________________________________________
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] 3+ messages in thread
end of thread, other threads:[~2025-02-19 17:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-19 17:29 [FFmpeg-devel] [PATCH 1/3] avfilter/vf_libplacebo: switch to new background API Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 2/3] avfilter/vf_libplacebo: allow differing formats per input Niklas Haas
2025-02-19 17:29 ` [FFmpeg-devel] [PATCH 3/3] avfilter/vf_libplacebo: set colorspace properties on all inputs Niklas Haas
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git