summaryrefslogtreecommitdiff
path: root/libavfilter/allfilters.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.dev>2021-07-26 00:55:37 +0200
committerLynne <dev@lynne.ee>2021-11-12 14:45:36 +0100
commit51e03409d74f3eb265cd4e562819daffb3645cb0 (patch)
tree233180425adf6cede54baa86e3618733af5f76c2 /libavfilter/allfilters.c
parent296cb99d46b5f72d393ec06bef2753098d19fad2 (diff)
lavfi: add a libplacebo filter
This filter conceptually maps the libplacebo `pl_renderer` API into libavfilter, which is a high-level image rendering API designed to work with an RGB pipeline internally. As such, there's no way to avoid e.g. chroma interpolation with this filter, although new versions of libplacebo support outputting back to subsampled YCbCr after processing is done. That being said, `pl_renderer` supports automatic integration of the majority of libplacebo's shaders, ranging from debanding to tone mapping, and also supports loading custom mpv-style user shaders, making this API a natural candidate for getting a lot of functionality out of relatively little code. In the future, I may approach this problem either by rewriting this filter to also support a non-renderer codepath, or by upgrading libplacebo's renderer to support a full YCbCr pipeline. This unfortunately requires a very new version of libplacebo (unreleased at time of writing) for timeline semaphore support. But the amount of boilerplate needed to hack in backwards compatibility would have been very unreasonable.
Diffstat (limited to 'libavfilter/allfilters.c')
-rw-r--r--libavfilter/allfilters.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
index 667b6fc246..be94249024 100644
--- a/libavfilter/allfilters.c
+++ b/libavfilter/allfilters.c
@@ -308,6 +308,7 @@ extern const AVFilter ff_vf_lagfun;
extern const AVFilter ff_vf_latency;
extern const AVFilter ff_vf_lenscorrection;
extern const AVFilter ff_vf_lensfun;
+extern const AVFilter ff_vf_libplacebo;
extern const AVFilter ff_vf_libvmaf;
extern const AVFilter ff_vf_limitdiff;
extern const AVFilter ff_vf_limiter;