[FFmpeg-devel] [PATCH] lavfi: add a libplacebo filter

Lynne dev at lynne.ee
Tue Mar 9 23:53:18 EET 2021


Mar 9, 2021, 17:38 by ffmpeg at haasn.xyz:

> From: Niklas Haas <git at haasn.xyz>
>
> 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.
>
> It's worth noting that this filter could be extended in the future to
> support HWframes frames of type AV_PIX_FMT_VULKAN, but this is not
> currently possible due to API limitations in the vulkan hwaccel.
> (Although it's also worth pointing out that, apart from a single
> `pl_vulkan_create` call, the current `vf_libplacebo` code does not
> depend on vulkan at all - so in theory it could be extended to support
> OpenGL or other libplacebo backends)
>

Sorry, as we discussed on IRC the Vulkan hwcontext should be
improved first and this filter should be kept as a pure hardware
filter.

I'm sorry, I know I've been holding up this patch for a few months,
but could you wait until I do my job with the hwcontext? I'm already
working on dozens of different things and I don't need extra pressure.
Others can discuss filter options and such, but do keep in mind
this isn't going to be the final version.


More information about the ffmpeg-devel mailing list