[FFmpeg-devel] [PATCH v2] libavformat/vapoursynth: Update to API version 4, load library at runtime

Anton Khirnov anton at khirnov.net
Mon Jul 22 09:57:42 EEST 2024


Quoting Stefan Oltmanns (2024-07-18 14:12:42)
> Hello Anton,
> 
> can you eloborate on that? What is unacceptable with my patch that is
> perfectly fine in the AviSynth input module? It's the very same concept.

It's not perfectly fine in avisynth, I dislike it there as well. There
are also recent patches that remove the atexit handler.

> Loading the library at runtime makes it so much more useful, because you
> can distribute ffmpeg binaries without forcing the user to install
> VapourSynth (which requires the user to install Python).

Runtime loading hides dependencies from standard tools and makes program
behaviour harder to analyze. Not to mention you're adding a bunch of
global state, which is evil.

> VapourSynth is not just a library like x264 that you can link in
> statically if you like, VapourSynth is a frame server (like AviSynth)
> with it's own dependencies.
> If you worry about platforms that do not support loading libraries at
> runtime: VapourSynth is based on plugins that are loaded on runtime, so
> it won't work on those platforms anyway.

I am worried about special "demuxers" than are not really demuxers and
don't work like other demuxers, hence massively increasing library
maintenance load.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list