Skip to content

Stefan-Olt/vs-plugin-build

Repository files navigation

vs-plugin-build

VapourSynth plugin build system for Linux/macOS. It is recommended to use vsrepo to install the plugins. Currently most plugins included are simple to compile (no dependencies and standard build system). Other plugins will be added over time (pull requests to add new plugins are very welcome!).

Plugin compatibility

Default requirements:

  • linux-glibc-x86_64 (Linux 64-Bit, high compatibility): libc6 at least 2.17, Linux Kernel at least 3.2 (compiled with GCC 11)
  • linux-glibc-x86_64-v3 (Linux 64-Bit, high performance): libc6 at least 2.35, Linux Kernel at least 6.1 (compiled with GCC 15.2)
  • darwin-x86_64 (Intel Mac): At least OS X 10.11 El Capitan
  • darwin-aarch64 (Apple Silicon Mac): At least macOS 11 Big Sur

If a plugin has higher or other requirements this is shown in the list.

linux-glibc-x86_64-v3

These builds will only work on more recent Linux distributions and recent processors (x86-64-v3: Intel Core-i 4xxx or newer, all AMD Ryzen), they provide higher perfomance, especially for plugins that don't already contain custom SSE/AVX optimizations.

Plugin list

For each category the number of currently available plugins in this repo and the total number of plugins in vsrepo is given. For a nice list of all plugins (and scripts/wheels) with more details, see the VapourSynth Database.

Name Linux (x86_64) macOS (Intel) macOS (Apple Silicon)
Color/Levels (2/5)
Curve
MatchHistogram
Deinterlacing (10/11)
Bwdif
EEDI2
EEDI3m
EEDI3VK ✅ (v3)
NNEDI3
NNEDI3CL 🚫 🚫
SangNom
TDeintMod
Yadifmod
ZNEDI3
Denoising (16/41)
Bilateral
BM3D
Cnr2
degrainmedian
DFTTest
FFT3DFilter
FluxSmooth
Frfun7
HQDn3D
KNLMeansCL 🚫 🚫
MiniDeen
RemoveGrain
TBilateral
TemporalMedian
TemporalSoften2
TTempSmooth
Dot Crawl and Rainbows (6/8)
Bifrost
DeCross
DeDot
SmoothUV
SSIQ
TComb
Inverse Telecine (2/3)
IT
TIVTC
Other (30/89)
AddGrain
AWarp
AWarpSharp2
bore
cambi ✅ (10.12)
CTMF
DCTFilter
Deblock
DeblockPP7
DeLogo
DePan
EdgeMasks
FFTSpectrum-rs ✅ (10.12)
FieldHint
fillborders
Histogram
Hysteresis ✅ (10.12)
LGhost
Median
Miscfilters (obsolete)
MotionMask
MSmoosh
MVTools
NoiseGen
RemapFrames
RemoveDirt
Retinex
TCanny
TEdgeMask
vs-noise
Resizing and Format Conversion (4/14)
Descale
fmtconv
JincResize
Tonemap
Sharpening (2/2)
ASharp
CAS - Contrast Adaptive Sharpening ✅ (10.13)
Source/Output (4/14)
BestSource ✅ (10.15)
ColorBars
FFmpegSource2
QRCodeSource
Subtitles (0/5)

Plugin issues

Not all plugins with build definitions in the repository build correctly on all platforms at the moment. Additionally some plugins don't work on all platforms by design (for example as Apple has removed OpenCL support, OpenCL plugins are not available on macOS):

linux-glibc-x86_64

currently all plugins can be build

darwin-x86_64

  • Bilateral: Linking failure (unknown option: -Bsymbolic)
  • IT: Linking failure (unknown option: -Bsymbolic)
  • JincResize: Crash during test
  • MiniDeen: Compile failure (error: argument to '__builtin_ia32_vec_set_v8hi' must be a constant integer')
  • NoiseGen: Crash during test
  • SmoothUV: Compile failure (error: argument to '__builtin_ia32_vec_set_v8hi' must be a constant integer')

darwin-aarch64

  • Bilateral: configure failure
  • DeblockPP7: Uses x86 intrinsics
  • DeCross: Only x86 supported
  • DeLogo: configure failure (fatal error: 'vapoursynth/VapourSynth.h' file not found)
  • DePan: configure failure (fatal error: 'vapoursynth/VapourSynth.h' file not found)
  • EEDI3m: Only x86 supported
  • IT: configure failure
  • JincResize: Crash during test
  • NoiseGen: Crash during test
  • SmoothUV: Only x86 supported
  • TDeintMod: Uses x86 intrinsics
  • TemporalSoften2: Only x86 supported
  • TIVTC: Only x86 supported
  • Yadifmod: Uses x86 intrinsics

Howto fix build issues:

These are a few ideas how to fix build issues on Darwin/macOS:

  • Configure or linking failures: These can most likely be fixed by using a newer (better) build system like meson. Creating a meson.build File for a plugin is very easy, see here for an example (with nasm and dependencies).
  • Only x86 supported / x86 intrinsics: sse2neon can be used to convert SSE intrinsics to NEON. sse2neon can also be used to convert SSE code to NEON for plugins that can already be build on aarch64 (Apple Silicon) to improve performance.

If you like to help fixing these issues it is recommended that you open an issue on the plugin repository (or create an pull request that fixes the issue there) with the hope the author will release a new version with a fix. If the plugin is unmaintained (or the maintainer does not respond) you can may open an issue here, so the patch can be included in the build system (less desirable option).

About

VapourSynth plugin build system for Linux/macOS

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages