aboutsummaryrefslogtreecommitdiffstats
path: root/configure
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 /configure
parent296cb99d46b5f72d393ec06bef2753098d19fad2 (diff)
downloadffmpeg-51e03409d74f3eb265cd4e562819daffb3645cb0.tar.gz
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 'configure')
-rwxr-xr-xconfigure3
1 files changed, 3 insertions, 0 deletions
diff --git a/configure b/configure
index eb451d2782..891824757b 100755
--- a/configure
+++ b/configure
@@ -1827,6 +1827,7 @@ EXTERNAL_LIBRARY_LIST="
libopenmpt
libopenvino
libopus
+ libplacebo
libpulse
librabbitmq
librav1e
@@ -3618,6 +3619,7 @@ interlace_filter_deps="gpl"
kerndeint_filter_deps="gpl"
ladspa_filter_deps="ladspa libdl"
lensfun_filter_deps="liblensfun version3"
+libplacebo_filter_deps="libplacebo vulkan libglslang"
lv2_filter_deps="lv2"
mcdeint_filter_deps="avcodec gpl"
metadata_filter_deps="avformat"
@@ -6493,6 +6495,7 @@ enabled libopus && {
require_pkg_config libopus opus opus_multistream.h opus_multistream_surround_encoder_create
}
}
+enabled libplacebo && require_pkg_config libplacebo "libplacebo >= 4.173.0" libplacebo/vulkan.h pl_vulkan_create
enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
enabled librabbitmq && require_pkg_config librabbitmq "librabbitmq >= 0.7.1" amqp.h amqp_new_connection
enabled librav1e && require_pkg_config librav1e "rav1e >= 0.4.0" rav1e.h rav1e_context_new