Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [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