[FFmpeg-cvslog] avfilter/vf_libplacebo: allow differing formats per input
Niklas Haas
git at videolan.org
Thu Feb 27 20:02:37 EET 2025
ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Wed Feb 19 18:21:53 2025 +0100| [d48745ba1cab3dbaf029e24aeef3c866b51cf6f9] | committer: Niklas Haas
avfilter/vf_libplacebo: allow differing formats per input
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 at haasn.dev>
Sponsored-by: nxtedition
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d48745ba1cab3dbaf029e24aeef3c866b51cf6f9
---
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 6254951e0a..b53543299d 100644
--- a/libavfilter/vf_libplacebo.c
+++ b/libavfilter/vf_libplacebo.c
@@ -1159,8 +1159,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 */
More information about the ffmpeg-cvslog
mailing list